18:34:47.116 [info] GET /runtime-config.js 18:34:47.117 [debug] QUERY OK source="settings" db=0.1ms idle=31.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.117 [debug] QUERY OK source="settings" db=0.2ms idle=31.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.117 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 18:34:47.118 [error] #PID<0.550117.0> running PinchflatWeb.Endpoint (connection #PID<0.550028.0>, stream id 9) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /runtime-config.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /runtime-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550028.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/runtime-config.js", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47808}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b879157cd3f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 172.71.232.66", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.232.66" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550117.0>, params: %{}, path_info: ["runtime-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "34.79.59.9"}, {"cf-ipcountry", "BE"}, {"cf-ray", "a4b879157cd3f6a4-CDG"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "34.79.59.9, 172.71.232.66"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.232.66"} ], request_path: "/runtime-config.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8PvmQ7Tja6NsAAAaIk"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550028.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/runtime-config.js", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47808}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b879157cd3f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 172.71.232.66", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.232.66" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /runtime-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550028.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/runtime-config.js", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47808}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b879157cd3f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 172.71.232.66", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.232.66" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550117.0>, params: %{}, path_info: ["runtime-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoe (truncated) 18:34:47.263 [info] GET /wp-content/debug.log 18:34:47.264 [debug] QUERY OK source="settings" db=0.1ms idle=175.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.264 [debug] QUERY OK source="settings" db=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 [] 18:34:47.264 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 18:34:47.265 [error] #PID<0.550118.0> running PinchflatWeb.Endpoint (connection #PID<0.550028.0>, stream id 10) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-content/debug.log ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/debug (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550028.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/debug.log", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47808}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87916ee41f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.132", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.132" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550118.0>, params: %{}, path_info: ["wp-content", "debug"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "34.79.59.9"}, {"cf-ipcountry", "BE"}, {"cf-ray", "a4b87916ee41f6a4-CDG"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "34.79.59.9, 141.101.69.132"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "141.101.69.132"} ], request_path: "/wp-content/debug.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8Pvm0Bq5ahHDcAAaJE"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550028.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/debug.log", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47808}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87916ee41f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.132", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.132" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/debug (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550028.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/debug.log", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47808}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87916ee41f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.132", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.132" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550118.0>, params: %{}, path_info: ["wp-content", "debug"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in P (truncated) 18:34:47.572 [info] GET /config/database.yaml 18:34:47.572 [info] GET /db.json 18:34:47.573 [info] GET /config/db.yaml 18:34:47.573 [debug] QUERY OK source="settings" db=0.3ms idle=455.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.573 [debug] QUERY OK source="settings" db=0.1ms idle=309.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.574 [debug] QUERY OK source="settings" db=1.3ms idle=481.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.574 [debug] QUERY OK source="settings" db=0.8ms idle=455.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.574 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 18:34:47.574 [debug] QUERY OK source="settings" db=0.9ms idle=309.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.574 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 18:34:47.575 [info] GET /db.yaml 18:34:47.576 [debug] QUERY OK source="settings" db=1.6ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.576 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 18:34:47.576 [debug] QUERY OK source="settings" db=0.4ms queue=0.6ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.577 [debug] QUERY OK source="settings" db=0.3ms queue=0.2ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.577 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 18:34:47.575 [error] #PID<0.550121.0> running PinchflatWeb.Endpoint (connection #PID<0.550052.0>, stream id 6) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /db.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /db (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550052.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/db.json", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47854}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfcef6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550121.0>, params: %{}, path_info: ["db"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "34.79.59.9"}, {"cf-ipcountry", "BE"}, {"cf-ray", "a4b87918dfcef6a4-CDG"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "34.79.59.9, 141.101.69.131"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "141.101.69.131"} ], request_path: "/db.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8Pvn9ozBJSISAABlAD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550052.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/db.json", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47854}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfcef6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /db (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550052.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/db.json", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47854}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfcef6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550121.0>, params: %{}, path_info: ["db"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, (truncated) 18:34:47.576 [error] #PID<0.550120.0> running PinchflatWeb.Endpoint (connection #PID<0.549997.0>, stream id 6) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /config/database.yaml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/database (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.549997.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/database.yaml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47772}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfcff6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550120.0>, params: %{}, path_info: ["config", "database"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "34.79.59.9"}, {"cf-ipcountry", "BE"}, {"cf-ray", "a4b87918dfcff6a4-CDG"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "34.79.59.9, 141.101.69.131"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "141.101.69.131"} ], request_path: "/config/database.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8Pvn9ozAogzv8AMt-i"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.549997.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/database.yaml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47772}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfcff6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/database (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.549997.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/database.yaml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47772}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfcff6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550120.0>, params: %{}, path_info: ["config", "database"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Tele (truncated) 18:34:47.575 [error] #PID<0.550122.0> running PinchflatWeb.Endpoint (connection #PID<0.550030.0>, stream id 8) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /config/db.yaml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/db (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550030.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/db.yaml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47810}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfd1f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550122.0>, params: %{}, path_info: ["config", "db"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "34.79.59.9"}, {"cf-ipcountry", "BE"}, {"cf-ray", "a4b87918dfd1f6a4-CDG"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "34.79.59.9, 141.101.69.131"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "141.101.69.131"} ], request_path: "/config/db.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8Pvn90UKlKem8ABlAj"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550030.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/db.yaml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47810}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfd1f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/db (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550030.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/db.yaml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47810}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfd1f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550122.0>, params: %{}, path_info: ["config", "db"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => Pinch (truncated) 18:34:47.581 [info] GET /config/db.json 18:34:47.581 [debug] QUERY OK source="settings" db=0.2ms idle=7.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.582 [debug] QUERY OK source="settings" db=0.2ms idle=7.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:34:47.582 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 18:34:47.579 [error] #PID<0.550123.0> running PinchflatWeb.Endpoint (connection #PID<0.550035.0>, stream id 8) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /db.yaml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /db (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550035.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/db.yaml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47836}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfd3f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550123.0>, params: %{}, path_info: ["db"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "34.79.59.9"}, {"cf-ipcountry", "BE"}, {"cf-ray", "a4b87918dfd3f6a4-CDG"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "34.79.59.9, 141.101.69.131"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "141.101.69.131"} ], request_path: "/db.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8Pvn-V3i2khbwABlBD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550035.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/db.yaml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47836}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfd3f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /db (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550035.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/db.yaml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47836}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfd3f6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550123.0>, params: %{}, path_info: ["db"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, (truncated) 18:34:47.582 [error] #PID<0.550124.0> running PinchflatWeb.Endpoint (connection #PID<0.550028.0>, stream id 11) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /config/db.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/db (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550028.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/db.json", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47808}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfccf6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550124.0>, params: %{}, path_info: ["config", "db"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "34.79.59.9"}, {"cf-ipcountry", "BE"}, {"cf-ray", "a4b87918dfccf6a4-CDG"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "34.79.59.9, 141.101.69.131"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "141.101.69.131"} ], request_path: "/config/db.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8Pvn_q0FWacDQAAaJk"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550028.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/db.json", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47808}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfccf6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/db (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550028.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/db.json", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47808}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "34.79.59.9", "cf-ipcountry" => "BE", "cf-ray" => "a4b87918dfccf6a4-CDG", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "34.79.59.9, 141.101.69.131", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "141.101.69.131" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550124.0>, params: %{}, path_info: ["config", "db"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => P (truncated) 18:34:58.819 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:35:00.979 [info] {"source":"oban","duration":230,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:35:25.936 [info] GET / 18:35:25.936 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 18:35:25.937 [debug] QUERY OK source="settings" db=0.2ms idle=1607.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:35:25.937 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1203.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 18:35:25.938 [debug] QUERY OK source="sources" db=0.1ms idle=608.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 18:35:25.938 [debug] QUERY OK source="media_items" db=0.6ms idle=608.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:35:25.939 [debug] QUERY OK source="media_items" db=0.2ms idle=203.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:35:25.939 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:35:25.940 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:35:25.940 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:35:25.941 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 18:35:25.942 [debug] QUERY OK source="media_items" db=0.6ms idle=2.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:35:25.943 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 18:35:25.944 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 18:35:26.076 [debug] QUERY OK source="media_items" db=129.4ms idle=5.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 18:35:26.078 [debug] QUERY OK source="media_items" db=1.8ms idle=134.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 18:35:26.079 [info] Sent 200 in 142ms 18:35:28.820 [info] {"source":"oban","duration":616,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:35:58.821 [info] {"source":"oban","duration":506,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:36:00.980 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:36:28.822 [info] {"source":"oban","duration":504,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:36:58.823 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:37:00.981 [info] {"source":"oban","duration":153,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:37:28.824 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:37:58.825 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:38:00.982 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:38:28.826 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:38:58.827 [info] {"source":"oban","duration":774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:39:00.983 [info] {"source":"oban","duration":242,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:39:28.828 [info] {"source":"oban","duration":815,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:39:58.830 [info] {"source":"oban","duration":789,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:40:00.984 [info] {"source":"oban","duration":231,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:40:28.831 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:40:58.832 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:41:00.985 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:41:28.833 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:41:58.834 [info] {"source":"oban","duration":675,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:42:00.986 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:42:28.835 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:42:58.836 [info] {"source":"oban","duration":812,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:43:00.987 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:43:28.837 [info] {"source":"oban","duration":671,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:43:58.839 [info] {"source":"oban","duration":1475,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:44:00.988 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:44:28.840 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:44:31.961 [info] GET /sitemap.xml 18:44:31.962 [debug] QUERY OK source="settings" db=0.2ms idle=1630.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:44:31.962 [debug] QUERY OK source="settings" db=0.1ms idle=1630.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:44:31.962 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 18:44:31.963 [error] #PID<0.550179.0> running PinchflatWeb.Endpoint (connection #PID<0.550178.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550178.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60652}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.54", "cf-ipcountry" => "US", "cf-ray" => "a4b8875b4e61f41a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.54, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550179.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.54"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4b8875b4e61f41a-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.54, 162.159.114.111"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.159.114.111"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8QRo-5Hl0gYGAAMuEi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550178.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60652}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.54", "cf-ipcountry" => "US", "cf-ray" => "a4b8875b4e61f41a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.54, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550178.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60652}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.54", "cf-ipcountry" => "US", "cf-ray" => "a4b8875b4e61f41a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.54, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550179.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 18:44:58.841 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:45:00.989 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:45:28.842 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:45:58.843 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:46:00.990 [info] {"source":"oban","duration":380,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:46:28.844 [info] {"source":"oban","duration":649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:46:58.845 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:47:00.991 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:47:28.846 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:47:58.847 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:48:00.992 [info] {"source":"oban","duration":225,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:48:28.848 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:48:58.849 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:49:00.993 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:49:28.850 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:49:58.851 [info] {"source":"oban","duration":605,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:50:00.994 [info] {"source":"oban","duration":175,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:50:28.852 [info] {"source":"oban","duration":585,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:50:58.853 [info] {"source":"oban","duration":536,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:51:00.995 [info] {"source":"oban","duration":170,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:51:28.854 [info] {"source":"oban","duration":538,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:51:58.855 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:52:00.996 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:52:28.856 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:52:58.857 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:53:00.997 [info] {"source":"oban","duration":145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:53:28.858 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:53:58.859 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:54:00.998 [info] {"source":"oban","duration":105,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:54:28.860 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:54:58.861 [info] {"source":"oban","duration":743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:55:00.999 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:55:28.862 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:55:58.863 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:56:01.000 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:56:28.864 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:56:58.866 [info] {"source":"oban","duration":788,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:57:00.001 [info] {"source":"oban","duration":224,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:57:28.867 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:57:58.868 [info] {"source":"oban","duration":903,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:58:00.002 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:58:28.870 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:58:58.871 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:59:00.003 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:59:28.872 [info] {"source":"oban","duration":765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:59:58.873 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:00:00.004 [info] {"source":"oban","duration":258,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:00:28.874 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:00:58.875 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:01:00.005 [info] {"source":"oban","duration":367,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:01:28.876 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:01:58.877 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:02:00.006 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:02:28.878 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:02:58.879 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:03:00.007 [info] {"source":"oban","duration":223,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:03:28.880 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:03:58.881 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:04:00.009 [info] {"source":"oban","duration":606,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:04:28.882 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:04:58.883 [info] {"source":"oban","duration":628,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:05:00.010 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:05:28.884 [info] {"source":"oban","duration":598,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:05:58.885 [info] {"source":"oban","duration":528,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:06:00.011 [info] {"source":"oban","duration":210,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:06:28.886 [info] {"source":"oban","duration":587,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:06:58.887 [info] {"source":"oban","duration":530,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:07:00.013 [info] {"source":"oban","duration":335,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:07:28.887 [info] {"source":"oban","duration":427,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:07:58.889 [info] {"source":"oban","duration":815,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:08:00.014 [info] {"source":"oban","duration":917,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:08:28.891 [info] {"source":"oban","duration":1030,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:08:58.893 [info] {"source":"oban","duration":874,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:09:00.016 [info] {"source":"oban","duration":395,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:09:28.895 [info] {"source":"oban","duration":845,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:09:58.897 [info] {"source":"oban","duration":755,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:10:00.017 [info] {"source":"oban","duration":1035,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:10:28.898 [info] {"source":"oban","duration":956,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:10:58.905 [info] {"source":"oban","duration":5526,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:11:00.021 [info] {"source":"oban","duration":1339,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:11:28.906 [info] {"source":"oban","duration":746,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:11:58.907 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:12:00.023 [info] {"source":"oban","duration":580,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:12:28.909 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:12:58.910 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:13:00.023 [info] {"source":"oban","duration":312,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:13:28.911 [info] {"source":"oban","duration":631,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:13:58.912 [info] {"source":"oban","duration":634,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:14:00.025 [info] {"source":"oban","duration":1189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:14:28.913 [info] {"source":"oban","duration":642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:14:58.914 [info] {"source":"oban","duration":802,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:15:00.027 [info] {"source":"oban","duration":616,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:15:28.916 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:15:58.917 [info] {"source":"oban","duration":603,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:16:00.029 [info] {"source":"oban","duration":1145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:16:28.918 [info] {"source":"oban","duration":568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:16:58.919 [info] {"source":"oban","duration":528,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:17:00.031 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:17:28.920 [info] {"source":"oban","duration":476,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:17:58.921 [info] {"source":"oban","duration":638,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:18:00.031 [info] {"source":"oban","duration":369,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:18:28.922 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:18:58.923 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:19:00.032 [info] {"source":"oban","duration":323,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:19:28.924 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:19:58.925 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:20:00.033 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:20:00.228 [info] GET /wp-content/plugins/hellopress/wp_filemanager.php 19:20:00.229 [debug] QUERY OK source="settings" db=0.2ms idle=1846.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:00.229 [debug] QUERY OK source="settings" db=0.1ms idle=1304.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:00.229 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:00.229 [error] #PID<0.550377.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-content/plugins/hellopress/wp_filemanager.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/plugins/hellopress/wp_filemanager (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/plugins/hellopress/wp_filemanager.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb4e0923e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550377.0>, params: %{}, path_info: ["wp-content", "plugins", "hellopress", "wp_filemanager"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb4e0923e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/wp-content/plugins/hellopress/wp_filemanager.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNhZN5mKp1KsAMuji"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/plugins/hellopress/wp_filemanager.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb4e0923e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, 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 /wp-content/plugins/hellopress/wp_filemanager (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/plugins/hellopress/wp_filemanager.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb4e0923e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550377.0>, params: %{}, path_info: ["wp-content", "plugins", "hellopress", "wp_filemanager"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, (truncated) 19:20:00.597 [info] GET /this_is_a_new_hello_world.php 19:20:00.598 [debug] QUERY OK source="settings" db=0.2ms idle=564.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:00.598 [debug] QUERY OK source="settings" db=0.1ms idle=475.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:00.598 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:00.599 [error] #PID<0.550378.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /this_is_a_new_hello_world.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /this_is_a_new_hello_world (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/this_is_a_new_hello_world.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb547cc0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550378.0>, params: %{}, path_info: ["this_is_a_new_hello_world"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb547cc0e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/this_is_a_new_hello_world.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNixO63FF6u8AMukC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/this_is_a_new_hello_world.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb547cc0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, 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 /this_is_a_new_hello_world (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/this_is_a_new_hello_world.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb547cc0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550378.0>, params: %{}, path_info: ["this_is_a_new_hello_world"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "reques (truncated) 19:20:00.943 [info] GET /app.php 19:20:00.943 [debug] QUERY OK source="settings" db=0.2ms idle=714.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:00.944 [debug] QUERY OK source="settings" db=0.2ms idle=714.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:00.944 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:00.944 [error] #PID<0.550379.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 3) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /app.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb56a928e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550379.0>, params: %{}, path_info: ["app"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb56a928e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/app.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNkDomy0ToRMAQVKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb56a928e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, 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 /app (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb56a928e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550379.0>, params: %{}, path_info: ["app"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encod (truncated) 19:20:01.272 [info] GET /bootstrap.php 19:20:01.273 [debug] QUERY OK source="settings" db=0.2ms idle=674.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:01.273 [debug] QUERY OK source="settings" db=0.1ms idle=674.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:01.273 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:01.274 [error] #PID<0.550380.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 4) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /bootstrap.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bootstrap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bootstrap.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb58bcbae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550380.0>, params: %{}, path_info: ["bootstrap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb58bcbae7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/bootstrap.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNlSMMWHiMxsAQVKh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bootstrap.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb58bcbae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, 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 /bootstrap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bootstrap.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb58bcbae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550380.0>, params: %{}, path_info: ["bootstrap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ (truncated) 19:20:01.631 [info] GET /core.php 19:20:01.632 [debug] QUERY OK source="settings" db=0.2ms idle=688.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:01.632 [debug] QUERY OK source="settings" db=0.1ms idle=688.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:01.632 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:01.633 [error] #PID<0.550381.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 5) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /core.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /core (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/core.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb5ae8c6e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550381.0>, params: %{}, path_info: ["core"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb5ae8c6e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/core.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNmnwgYVKPeoAQVLB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/core.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb5ae8c6e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, 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 /core (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/core.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb5ae8c6e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550381.0>, params: %{}, path_info: ["core"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"acc (truncated) 19:20:01.971 [info] GET /footer.php 19:20:01.972 [debug] QUERY OK source="settings" db=0.2ms idle=847.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:01.972 [debug] QUERY OK source="settings" db=0.2ms idle=699.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:01.972 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:01.973 [error] #PID<0.550382.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 6) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /footer.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /footer (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/footer.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb5d1c82e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550382.0>, params: %{}, path_info: ["footer"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb5d1c82e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/footer.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNn42ll9pyWUAQVLh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/footer.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb5d1c82e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /footer (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/footer.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb5d1c82e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550382.0>, params: %{}, path_info: ["footer"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:02.331 [info] GET /global.php 19:20:02.332 [debug] QUERY OK source="settings" db=0.2ms idle=699.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:02.332 [debug] QUERY OK source="settings" db=0.1ms idle=699.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:02.332 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:02.332 [error] #PID<0.550383.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 7) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /global.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /global (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/global.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb5f4858e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550383.0>, params: %{}, path_info: ["global"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb5f4858e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/global.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNpOqD9tYXfsAQVMB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/global.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb5f4858e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /global (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/global.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb5f4858e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550383.0>, params: %{}, path_info: ["global"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:02.677 [info] GET /header.php 19:20:02.677 [debug] QUERY OK source="settings" db=0.2ms idle=705.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:02.678 [debug] QUERY OK source="settings" db=0.2ms idle=705.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:02.678 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:02.678 [error] #PID<0.550384.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 8) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /header.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /header (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/header.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb616c93e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550384.0>, params: %{}, path_info: ["header"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb616c93e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/header.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNqhCmq8PV3UAQVMh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/header.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb616c93e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /header (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/header.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb616c93e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550384.0>, params: %{}, path_info: ["header"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:03.028 [info] GET /functions.php 19:20:03.029 [debug] QUERY OK source="settings" db=0.2ms idle=903.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:03.029 [debug] QUERY OK source="settings" db=0.1ms idle=697.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:03.030 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:03.030 [error] #PID<0.550385.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 9) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /functions.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /functions (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/functions.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb63a91ee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550385.0>, params: %{}, path_info: ["functions"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb63a91ee7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/functions.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNr05ZleGTzsAQVNB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/functions.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb63a91ee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /functions (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/functions.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb63a91ee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550385.0>, params: %{}, path_info: ["functions"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ (truncated) 19:20:03.358 [info] GET /main.php 19:20:03.359 [debug] QUERY OK source="settings" db=0.2ms idle=681.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:03.359 [debug] QUERY OK source="settings" db=0.1ms idle=681.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:03.359 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:03.360 [error] #PID<0.550386.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 10) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /main.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /main (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/main.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb65ccf5e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550386.0>, params: %{}, path_info: ["main"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb65ccf5e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/main.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNtDkEYTOOR8AQVNh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/main.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb65ccf5e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /main (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/main.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb65ccf5e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550386.0>, params: %{}, path_info: ["main"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:03.692 [info] GET /lib.php 19:20:03.693 [debug] QUERY OK source="settings" db=0.2ms idle=663.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:03.693 [debug] QUERY OK source="settings" db=0.1ms idle=663.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:03.693 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:03.694 [error] #PID<0.550387.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 11) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /lib.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /lib (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/lib.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb67d913e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550387.0>, params: %{}, path_info: ["lib"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb67d913e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/lib.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNuTKyGJtD6sAQVOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/lib.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb67d913e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /lib (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/lib.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb67d913e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550387.0>, params: %{}, path_info: ["lib"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-e (truncated) 19:20:04.020 [info] GET /ws.php 19:20:04.020 [debug] QUERY OK source="settings" db=0.2ms idle=894.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:04.021 [debug] QUERY OK source="settings" db=0.1ms idle=661.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:04.021 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:04.021 [error] #PID<0.550388.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 12) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /ws.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ws (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ws.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb69ecd3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550388.0>, params: %{}, path_info: ["ws"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb69ecd3e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/ws.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNvhQFh_nOScAQVOh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ws.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb69ecd3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ws (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ws.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb69ecd3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550388.0>, params: %{}, path_info: ["ws"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", (truncated) 19:20:04.356 [info] GET /bnmtp.php 19:20:04.356 [debug] QUERY OK source="settings" db=0.1ms idle=663.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:04.357 [debug] QUERY OK source="settings" db=0.2ms idle=663.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:04.357 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:04.357 [error] #PID<0.550389.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 13) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /bnmtp.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bnmtp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bnmtp.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb6c08ece7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550389.0>, params: %{}, path_info: ["bnmtp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb6c08ece7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/bnmtp.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNwxYbARhDBwAQVPB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bnmtp.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb6c08ece7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bnmtp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bnmtp.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb6c08ece7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550389.0>, params: %{}, path_info: ["bnmtp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:04.692 [info] GET /date1.php 19:20:04.693 [debug] QUERY OK source="settings" db=0.2ms idle=671.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:04.693 [debug] QUERY OK source="settings" db=0.2ms idle=672.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:04.693 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:04.694 [error] #PID<0.550390.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 14) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /date1.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /date1 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/date1.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb6e1cf7e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 14, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550390.0>, params: %{}, path_info: ["date1"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb6e1cf7e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/date1.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNyBgrp03DBQAQVPh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/date1.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb6e1cf7e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 14, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /date1 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/date1.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb6e1cf7e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 14, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550390.0>, params: %{}, path_info: ["date1"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:05.025 [info] GET /opsh.php 19:20:05.026 [debug] QUERY OK source="settings" db=0.2ms idle=898.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:05.026 [debug] QUERY OK source="settings" db=0.1ms idle=669.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:05.026 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:05.026 [error] #PID<0.550391.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 15) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /opsh.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /opsh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/opsh.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb70391ae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550391.0>, params: %{}, path_info: ["opsh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb70391ae7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/opsh.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SNzQ5ptdY83IAQVQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/opsh.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb70391ae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /opsh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/opsh.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb70391ae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550391.0>, params: %{}, path_info: ["opsh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:05.351 [info] GET /ebkid.php 19:20:05.352 [debug] QUERY OK source="settings" db=0.3ms idle=659.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:05.353 [debug] QUERY OK source="settings" db=0.2ms idle=659.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:05.353 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:05.353 [error] #PID<0.550392.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 16) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /ebkid.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ebkid (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ebkid.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb723ce6e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550392.0>, params: %{}, path_info: ["ebkid"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb723ce6e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/ebkid.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN0euqsz9k5gAQVQh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ebkid.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb723ce6e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ebkid (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ebkid.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb723ce6e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550392.0>, params: %{}, path_info: ["ebkid"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:05.701 [info] GET /MacKenzie.php 19:20:05.702 [debug] QUERY OK source="settings" db=0.1ms idle=675.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:05.702 [debug] QUERY OK source="settings" db=0.1ms idle=675.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:05.702 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:05.702 [error] #PID<0.550393.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 17) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /MacKenzie.php?p= ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /MacKenzie (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/MacKenzie.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7458cee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550393.0>, params: %{"p" => ""}, path_info: ["MacKenzie"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb7458cee7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/MacKenzie.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN1yEhj_9xyMAQVRB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/MacKenzie.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7458cee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /MacKenzie (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/MacKenzie.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7458cee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550393.0>, params: %{"p" => ""}, path_info: ["MacKenzie"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", (truncated) 19:20:06.039 [info] GET /np.php 19:20:06.040 [debug] QUERY OK source="settings" db=0.1ms idle=912.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:06.040 [debug] QUERY OK source="settings" db=0.1ms idle=687.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:06.040 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:06.041 [error] #PID<0.550394.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 18) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /np.php?p= ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /np (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/np.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb768ce3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550394.0>, params: %{"p" => ""}, path_info: ["np"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb768ce3e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/np.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN3CxHRmxd5YAQVRh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/np.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb768ce3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /np (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/np.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb768ce3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550394.0>, params: %{"p" => ""}, path_info: ["np"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, (truncated) 19:20:06.369 [info] GET /samll.php 19:20:06.369 [debug] QUERY OK source="settings" db=0.2ms idle=667.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:06.370 [debug] QUERY OK source="settings" db=0.1ms idle=667.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:06.370 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:06.370 [error] #PID<0.550395.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 19) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /samll.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /samll (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/samll.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb789886e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550395.0>, params: %{}, path_info: ["samll"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb789886e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/samll.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN4RStSapwxQAQVSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/samll.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb789886e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /samll (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/samll.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb789886e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550395.0>, params: %{}, path_info: ["samll"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:06.699 [info] GET /config.php 19:20:06.699 [debug] QUERY OK source="settings" db=0.2ms idle=659.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:06.700 [debug] QUERY OK source="settings" db=0.2ms idle=659.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:06.700 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:06.700 [error] #PID<0.550396.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 20) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /config.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7aac6be7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 20, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550396.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb7aac6be7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/config.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN5f--g4AkxAAQVSh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7aac6be7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 20, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7aac6be7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 20, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550396.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_header (truncated) 19:20:07.024 [info] GET /lock.php 19:20:07.025 [debug] QUERY OK source="settings" db=0.2ms idle=895.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:07.025 [debug] QUERY OK source="settings" db=0.2ms idle=655.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:07.025 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:07.026 [error] #PID<0.550397.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 21) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /lock.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /lock (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/lock.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7cbfe0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550397.0>, params: %{}, path_info: ["lock"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb7cbfe0e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/lock.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN6tmXFj1tdQAQVTB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/lock.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7cbfe0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /lock (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/lock.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7cbfe0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550397.0>, params: %{}, path_info: ["lock"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:07.354 [info] GET /b.php 19:20:07.355 [debug] QUERY OK source="settings" db=0.1ms idle=655.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:07.355 [debug] QUERY OK source="settings" db=0.1ms idle=655.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:07.356 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:07.356 [error] #PID<0.550398.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 22) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /b.php?p= ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /b (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/b.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7ecc54e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550398.0>, params: %{"p" => ""}, path_info: ["b"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb7ecc54e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/b.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN78S3c9tZ4sAQVTh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/b.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7ecc54e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /b (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/b.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb7ecc54e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550398.0>, params: %{"p" => ""}, path_info: ["b"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_he (truncated) 19:20:07.688 [info] GET /wp-content/themes/index.php 19:20:07.688 [debug] QUERY OK source="settings" db=0.2ms idle=663.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:07.689 [debug] QUERY OK source="settings" db=0.3ms idle=663.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:07.689 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:07.689 [error] #PID<0.550399.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 23) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-content/themes/index.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/themes/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/themes/index.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb80c84fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 23, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550399.0>, params: %{}, path_info: ["wp-content", "themes", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb80c84fe7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/wp-content/themes/index.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN9Lx5cB7WvcAMuki"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/themes/index.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb80c84fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 23, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/themes/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/themes/index.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb80c84fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 23, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550399.0>, params: %{}, path_info: ["wp-content", "themes", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_ (truncated) 19:20:08.016 [info] GET /adminfuns.php 19:20:08.017 [debug] QUERY OK source="settings" db=0.2ms idle=886.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:08.017 [debug] QUERY OK source="settings" db=0.2ms idle=661.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:08.017 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:08.017 [error] #PID<0.550400.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 24) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /adminfuns.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /adminfuns (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/adminfuns.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb82ec6ee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 24, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550400.0>, params: %{}, path_info: ["adminfuns"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb82ec6ee7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/adminfuns.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN-Z-2id_tWIAQVUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/adminfuns.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb82ec6ee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 24, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /adminfuns (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/adminfuns.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb82ec6ee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 24, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550400.0>, params: %{}, path_info: ["adminfuns"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies (truncated) 19:20:08.362 [info] GET /alfa.php 19:20:08.363 [debug] QUERY OK source="settings" db=0.2ms idle=674.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:08.363 [debug] QUERY OK source="settings" db=0.1ms idle=674.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:08.363 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:08.364 [error] #PID<0.550401.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 25) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /alfa.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /alfa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/alfa.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb84f85ce7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 25, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550401.0>, params: %{}, path_info: ["alfa"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb84f85ce7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/alfa.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SN_smGLARYDcAQVUh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/alfa.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb84f85ce7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 25, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /alfa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/alfa.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb84f85ce7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 25, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550401.0>, params: %{}, path_info: ["alfa"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:08.715 [info] GET /222.php 19:20:08.716 [debug] QUERY OK source="settings" db=0.2ms idle=698.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:08.716 [debug] QUERY OK source="settings" db=0.1ms idle=698.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:08.716 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:08.716 [error] #PID<0.550402.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 26) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /222.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /222 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/222.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb872ccfe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 26, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550402.0>, params: %{}, path_info: ["222"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb872ccfe7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/222.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOBArMnW9_0EAQVVB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/222.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb872ccfe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 26, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /222 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/222.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb872ccfe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 26, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550402.0>, params: %{}, path_info: ["222"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-e (truncated) 19:20:09.040 [info] GET /3PJcpMFsD8B.php 19:20:09.040 [debug] QUERY OK source="settings" db=0.2ms idle=909.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:09.040 [debug] QUERY OK source="settings" db=0.1ms idle=677.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:09.040 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:09.041 [error] #PID<0.550403.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 27) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /3PJcpMFsD8B.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /3PJcpMFsD8B (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/3PJcpMFsD8B.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb894857e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 27, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550403.0>, params: %{}, path_info: ["3PJcpMFsD8B"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb894857e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/3PJcpMFsD8B.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOCOCiWyZuNUAQVVh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/3PJcpMFsD8B.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb894857e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 27, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /3PJcpMFsD8B (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/3PJcpMFsD8B.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb894857e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 27, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550403.0>, params: %{}, path_info: ["3PJcpMFsD8B"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, (truncated) 19:20:09.383 [info] GET /media.php 19:20:09.384 [debug] QUERY OK source="settings" db=0.2ms idle=667.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:09.384 [debug] QUERY OK source="settings" db=0.1ms idle=667.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:09.384 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:09.384 [error] #PID<0.550404.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 28) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /media.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /media (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/media.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb8b6be7e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 28, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550404.0>, params: %{}, path_info: ["media"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb8b6be7e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/media.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SODf7s4GcDXMAQVWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/media.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb8b6be7e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 28, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /media (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/media.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb8b6be7e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 28, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550404.0>, params: %{}, path_info: ["media"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:09.709 [info] GET /1.php 19:20:09.710 [debug] QUERY OK source="settings" db=0.2ms idle=669.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:09.710 [debug] QUERY OK source="settings" db=0.2ms idle=669.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:09.711 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:09.711 [error] #PID<0.550405.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 29) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /1.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /1 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/1.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb8d7ff2e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 29, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550405.0>, params: %{}, path_info: ["1"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb8d7ff2e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/1.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOEtw5_Yer-8AQVWh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/1.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb8d7ff2e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 29, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /1 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/1.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb8d7ff2e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 29, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550405.0>, params: %{}, path_info: ["1"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, b (truncated) 19:20:10.060 [info] GET /aaa.php 19:20:10.061 [debug] QUERY OK source="settings" db=0.2ms idle=928.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:10.061 [debug] QUERY OK source="settings" db=0.1ms idle=677.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:10.061 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:10.061 [error] #PID<0.550406.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 30) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /aaa.php?p= ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /aaa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aaa.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb8f8b6fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 30, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550406.0>, params: %{"p" => ""}, path_info: ["aaa"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb8f8b6fe7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/aaa.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOGBWdRHdf9MAQVXB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aaa.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb8f8b6fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 30, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /aaa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aaa.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb8f8b6fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 30, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550406.0>, params: %{"p" => ""}, path_info: ["aaa"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{} (truncated) 19:20:10.389 [info] GET /chosen.php 19:20:10.389 [debug] QUERY OK source="settings" db=0.1ms idle=679.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:10.390 [debug] QUERY OK source="settings" db=0.1ms idle=679.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:10.390 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:10.390 [error] #PID<0.550407.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 31) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /chosen.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /chosen (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/chosen.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb91bf93e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 31, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550407.0>, params: %{}, path_info: ["chosen"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb91bf93e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/chosen.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOHPv7p2aO3gAQVXh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/chosen.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb91bf93e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 31, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /chosen (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/chosen.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb91bf93e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 31, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550407.0>, params: %{}, path_info: ["chosen"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_header (truncated) 19:20:10.716 [info] GET /2P.php 19:20:10.717 [debug] QUERY OK source="settings" db=0.1ms idle=656.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:10.717 [debug] QUERY OK source="settings" db=0.2ms idle=656.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:10.717 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:10.718 [error] #PID<0.550408.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 32) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /2P.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /2P (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/2P.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb93cb21e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 32, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550408.0>, params: %{}, path_info: ["2P"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb93cb21e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/2P.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOId0mWRSjw8AQVYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/2P.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb93cb21e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 32, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /2P (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/2P.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb93cb21e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 32, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550408.0>, params: %{}, path_info: ["2P"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", (truncated) 19:20:11.041 [info] GET /ant.php 19:20:11.041 [debug] QUERY OK source="settings" db=0.2ms idle=908.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:11.042 [debug] QUERY OK source="settings" db=0.1ms idle=652.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:11.042 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:11.042 [error] #PID<0.550409.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 33) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /ant.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ant (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ant.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb95ce60e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 33, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550409.0>, params: %{}, path_info: ["ant"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb95ce60e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/ant.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOJrM9PS-0W0AQVYh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ant.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb95ce60e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 33, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ant (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ant.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb95ce60e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 33, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550409.0>, params: %{}, path_info: ["ant"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-e (truncated) 19:20:11.369 [info] GET /sitemap.php 19:20:11.370 [debug] QUERY OK source="settings" db=0.3ms idle=652.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:11.370 [debug] QUERY OK source="settings" db=0.1ms idle=652.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:11.370 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:11.371 [error] #PID<0.550410.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 34) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb97d994e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 34, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550410.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb97d994e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/sitemap.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOK5a3fBXEyEAQVZB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb97d994e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 34, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb97d994e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 34, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550410.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, r (truncated) 19:20:11.705 [info] GET /zwso.php 19:20:11.706 [debug] QUERY OK source="settings" db=0.2ms idle=663.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:11.706 [debug] QUERY OK source="settings" db=0.2ms idle=663.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:11.706 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:11.707 [error] #PID<0.550411.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 35) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /zwso.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /zwso (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/zwso.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb99fd20e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 35, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550411.0>, params: %{}, path_info: ["zwso"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb99fd20e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/zwso.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOMJi7n_bkHkAQVZh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/zwso.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb99fd20e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 35, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /zwso (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/zwso.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb99fd20e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 35, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550411.0>, params: %{}, path_info: ["zwso"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:12.040 [info] GET /simple.php 19:20:12.041 [debug] QUERY OK source="settings" db=0.3ms idle=906.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:12.041 [debug] QUERY OK source="settings" db=0.3ms idle=671.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:12.041 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:12.042 [error] #PID<0.550412.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 36) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /simple.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /simple (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/simple.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb9c08a0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 36, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550412.0>, params: %{}, path_info: ["simple"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb9c08a0e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/simple.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SONZbKg9lBhUAQVaB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/simple.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb9c08a0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 36, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /simple (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/simple.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb9c08a0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 36, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550412.0>, params: %{}, path_info: ["simple"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_header (truncated) 19:20:12.369 [info] GET //buy.php 19:20:12.370 [debug] QUERY OK source="settings" db=0.2ms idle=664.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:12.370 [debug] QUERY OK source="settings" db=0.2ms idle=664.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:12.370 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:12.371 [error] #PID<0.550413.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 37) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET //buy.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /buy (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "//buy.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb9e1c52e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 37, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550413.0>, params: %{}, path_info: ["buy"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bb9e1c52e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "//buy.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOOn8BqixnasAQVah"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "//buy.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb9e1c52e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 37, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /buy (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "//buy.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bb9e1c52e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 37, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550413.0>, params: %{}, path_info: ["buy"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"acc (truncated) 19:20:12.713 [info] GET /ioxi-o.php 19:20:12.714 [debug] QUERY OK source="settings" db=0.2ms idle=672.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:12.714 [debug] QUERY OK source="settings" db=0.2ms idle=672.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:12.714 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:12.715 [error] #PID<0.550414.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 38) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /ioxi-o.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ioxi-o (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ioxi-o.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba03845e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 38, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550414.0>, params: %{}, path_info: ["ioxi-o"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bba03845e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/ioxi-o.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOP53vct4yD4AQVbB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ioxi-o.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba03845e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 38, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ioxi-o (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ioxi-o.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba03845e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 38, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550414.0>, params: %{}, path_info: ["ioxi-o"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_header (truncated) 19:20:13.044 [info] GET /ans.php 19:20:13.045 [debug] QUERY OK source="settings" db=0.2ms idle=909.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:13.045 [debug] QUERY OK source="settings" db=0.1ms idle=674.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:13.045 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:13.045 [error] #PID<0.550415.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 39) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /ans.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ans (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ans.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba24b89e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 39, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550415.0>, params: %{}, path_info: ["ans"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bba24b89e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/ans.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SORIxEuqnMrMAQVbh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ans.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba24b89e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 39, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ans (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ans.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba24b89e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 39, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550415.0>, params: %{}, path_info: ["ans"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-e (truncated) 19:20:13.373 [info] GET /gf.php 19:20:13.373 [debug] QUERY OK source="settings" db=0.3ms idle=659.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:13.374 [debug] QUERY OK source="settings" db=0.1ms idle=659.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:13.374 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:13.374 [error] #PID<0.550416.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 40) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /gf.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gf (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gf.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba45edde7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 40, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550416.0>, params: %{}, path_info: ["gf"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bba45edde7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/gf.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOSXHAcghSfwAQVcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gf.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba45edde7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 40, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gf (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gf.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba45edde7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 40, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550416.0>, params: %{}, path_info: ["gf"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", (truncated) 19:20:13.701 [info] GET /man.php 19:20:13.702 [debug] QUERY OK source="settings" db=0.1ms idle=657.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:13.702 [debug] QUERY OK source="settings" db=0.1ms idle=657.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:13.702 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:13.703 [error] #PID<0.550417.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 41) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /man.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /man (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/man.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba66aa8e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 41, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550417.0>, params: %{}, path_info: ["man"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bba66aa8e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/man.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOTlg3E-vzf0AQVch"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/man.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba66aa8e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 41, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /man (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/man.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba66aa8e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 41, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550417.0>, params: %{}, path_info: ["man"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-e (truncated) 19:20:14.029 [info] GET /dev.php 19:20:14.031 [debug] QUERY OK source="settings" db=1.7ms idle=893.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:14.033 [debug] QUERY OK source="settings" db=0.6ms queue=0.7ms idle=658.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:14.033 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:14.034 [error] #PID<0.550418.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 42) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /dev.php?p= ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /dev (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dev.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba87de4e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 42, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550418.0>, params: %{"p" => ""}, path_info: ["dev"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bba87de4e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/dev.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOUznuinfZeYAQVdB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dev.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba87de4e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 42, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /dev (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dev.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bba87de4e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 42, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550418.0>, params: %{"p" => ""}, path_info: ["dev"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{} (truncated) 19:20:14.361 [info] GET /ms-edit.php 19:20:14.362 [debug] QUERY OK source="settings" db=0.2ms idle=659.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:14.362 [debug] QUERY OK source="settings" db=0.1ms idle=659.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:14.362 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:14.362 [error] #PID<0.550421.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 43) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /ms-edit.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ms-edit (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ms-edit.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbaa890ae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 43, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550421.0>, params: %{}, path_info: ["ms-edit"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbaa890ae7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/ms-edit.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOWCwSorYkA8AQVeB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ms-edit.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbaa890ae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 43, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ms-edit (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ms-edit.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbaa890ae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 43, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550421.0>, params: %{}, path_info: ["ms-edit"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, r (truncated) 19:20:14.688 [info] GET /txets.php 19:20:14.689 [debug] QUERY OK source="settings" db=0.2ms idle=657.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:14.689 [debug] QUERY OK source="settings" db=0.1ms idle=656.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:14.689 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:14.690 [error] #PID<0.550422.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 44) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /txets.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /txets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/txets.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbac9c84e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 44, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550422.0>, params: %{}, path_info: ["txets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbac9c84e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/txets.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOXQ0gQtSysgAQVeh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/txets.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbac9c84e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 44, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /txets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/txets.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbac9c84e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 44, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550422.0>, params: %{}, path_info: ["txets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:15.026 [info] GET /hao.php 19:20:15.027 [debug] QUERY OK source="settings" db=0.1ms idle=889.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:15.027 [debug] QUERY OK source="settings" db=0.1ms idle=665.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:15.027 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:15.028 [error] #PID<0.550423.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 45) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /hao.php?p= ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /hao (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/hao.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbaebff3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 45, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550423.0>, params: %{"p" => ""}, path_info: ["hao"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbaebff3e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/hao.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOYhbYOVnoUgAQVfB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/hao.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbaebff3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 45, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /hao (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/hao.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbaebff3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 45, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550423.0>, params: %{"p" => ""}, path_info: ["hao"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{} (truncated) 19:20:15.352 [info] GET /33.php 19:20:15.353 [debug] QUERY OK source="settings" db=0.2ms idle=663.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:15.353 [debug] QUERY OK source="settings" db=0.1ms idle=663.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:15.353 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:15.354 [error] #PID<0.550424.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 46) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /33.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /33 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/33.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb0bb85e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 46, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550424.0>, params: %{}, path_info: ["33"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbb0bb85e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/33.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOZvI-xakT50AQVfh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/33.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb0bb85e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 46, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /33 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/33.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb0bb85e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 46, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550424.0>, params: %{}, path_info: ["33"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", (truncated) 19:20:15.680 [info] GET /adminner.php 19:20:15.680 [debug] QUERY OK source="settings" db=0.2ms idle=653.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:15.681 [debug] QUERY OK source="settings" db=0.2ms idle=653.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:15.681 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:15.681 [error] #PID<0.550425.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 47) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /adminner.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /adminner (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/adminner.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb2cf1be7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 47, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550425.0>, params: %{}, path_info: ["adminner"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbb2cf1be7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/adminner.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOa9ONDoztgAAQVgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/adminner.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb2cf1be7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 47, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /adminner (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/adminner.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb2cf1be7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 47, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550425.0>, params: %{}, path_info: ["adminner"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, (truncated) 19:20:16.006 [info] GET /thoms.php 19:20:16.007 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=868.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.007 [debug] QUERY OK source="settings" db=0.1ms idle=654.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.007 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:16.008 [error] #PID<0.550426.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 48) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /thoms.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /thoms (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/thoms.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb4da9ee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 48, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550426.0>, params: %{}, path_info: ["thoms"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbb4da9ee7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/thoms.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOcLEO7jOCeEAQVgh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/thoms.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb4da9ee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 48, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /thoms (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/thoms.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb4da9ee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 48, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550426.0>, params: %{}, path_info: ["thoms"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:16.334 [info] GET /a.php 19:20:16.334 [debug] QUERY OK source="settings" db=0.2ms idle=653.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.334 [debug] QUERY OK source="settings" db=0.1ms idle=653.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.335 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:16.335 [error] #PID<0.550427.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 49) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /a.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /a (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/a.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb6dde8e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 49, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550427.0>, params: %{}, path_info: ["a"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbb6dde8e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/a.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOdZEe_-1YBoAQVhB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/a.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb6dde8e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 49, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /a (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/a.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb6dde8e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 49, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550427.0>, params: %{}, path_info: ["a"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, b (truncated) 19:20:16.662 [info] GET /sid.php 19:20:16.663 [debug] QUERY OK source="settings" db=0.2ms idle=655.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.663 [debug] QUERY OK source="settings" db=0.3ms idle=655.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.663 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:16.664 [error] #PID<0.550428.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 50) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sid.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sid (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sid.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb8e939e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 50, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550428.0>, params: %{}, path_info: ["sid"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbb8e939e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/sid.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOenYOuss5vMAQVhh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sid.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb8e939e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 50, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sid (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sid.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbb8e939e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 50, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550428.0>, params: %{}, path_info: ["sid"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-e (truncated) 19:20:16.987 [info] GET /bro.php 19:20:16.988 [debug] QUERY OK source="settings" db=0.2ms idle=848.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.988 [debug] QUERY OK source="settings" db=0.2ms idle=653.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.988 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:16.989 [error] #PID<0.550429.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 51) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /bro.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bro (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bro.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbbafc98e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 51, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550429.0>, params: %{}, path_info: ["bro"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbbafc98e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/bro.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOf08geNU8w4AQViB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bro.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbbafc98e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 51, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bro (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bro.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbbafc98e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 51, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550429.0>, params: %{}, path_info: ["bro"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-e (truncated) 19:20:17.314 [info] GET /xwpg.php 19:20:17.314 [debug] QUERY OK source="settings" db=0.2ms idle=651.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:17.314 [debug] QUERY OK source="settings" db=0.1ms idle=651.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:17.315 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:17.315 [error] #PID<0.550430.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 52) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /xwpg.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /xwpg (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/xwpg.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbbcf829e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 52, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550430.0>, params: %{}, path_info: ["xwpg"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbbcf829e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/xwpg.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOhCujgAlL_gAQVih"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/xwpg.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbbcf829e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 52, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /xwpg (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/xwpg.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbbcf829e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 52, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550430.0>, params: %{}, path_info: ["xwpg"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:17.641 [info] GET /radio.php 19:20:17.641 [debug] QUERY OK source="settings" db=0.1ms idle=653.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:17.642 [debug] QUERY OK source="settings" db=0.1ms idle=653.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:17.642 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:17.642 [error] #PID<0.550431.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 53) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /radio.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /radio (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/radio.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbbf0b71e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 53, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550431.0>, params: %{}, path_info: ["radio"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbbf0b71e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/radio.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOiQxuUhF2ucAQVjB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/radio.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbbf0b71e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 53, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /radio (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/radio.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbbf0b71e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 53, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550431.0>, params: %{}, path_info: ["radio"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:17.967 [info] GET /Components.php 19:20:17.968 [debug] QUERY OK source="settings" db=0.2ms idle=827.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:17.968 [debug] QUERY OK source="settings" db=0.1ms idle=653.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:17.968 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:17.969 [error] #PID<0.550432.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 54) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /Components.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /Components (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/Components.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc11ec8e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 54, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550432.0>, params: %{}, path_info: ["Components"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbc11ec8e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/Components.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOjem8lZQLYUAQVjh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/Components.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc11ec8e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 54, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /Components (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/Components.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc11ec8e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 54, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550432.0>, params: %{}, path_info: ["Components"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, re (truncated) 19:20:18.293 [info] GET /gelay.php 19:20:18.293 [debug] QUERY OK source="settings" db=0.2ms idle=651.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:18.294 [debug] QUERY OK source="settings" db=0.1ms idle=651.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:18.294 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:18.294 [error] #PID<0.550433.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 55) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /gelay.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gelay (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gelay.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc32a13e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 55, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550433.0>, params: %{}, path_info: ["gelay"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbc32a13e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/gelay.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOksOFE7tlg4AQVkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gelay.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc32a13e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 55, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gelay (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gelay.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc32a13e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 55, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550433.0>, params: %{}, path_info: ["gelay"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:18.617 [info] GET /readme.php 19:20:18.617 [debug] QUERY OK source="settings" db=0.2ms idle=649.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:18.618 [debug] QUERY OK source="settings" db=0.1ms idle=649.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:18.618 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:18.618 [error] #PID<0.550434.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 56) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /readme.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /readme (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/readme.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc52d59e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 56, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550434.0>, params: %{}, path_info: ["readme"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbc52d59e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/readme.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOl5dWvPR1e8AQVkh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/readme.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc52d59e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 56, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /readme (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/readme.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc52d59e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 56, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550434.0>, params: %{}, path_info: ["readme"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_header (truncated) 19:20:18.945 [info] GET /max.php 19:20:18.946 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=804.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:18.946 [debug] QUERY OK source="settings" db=0.1ms idle=652.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:18.947 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:18.947 [error] #PID<0.550435.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 57) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /max.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /max (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/max.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc738a5e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 57, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550435.0>, params: %{}, path_info: ["max"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbc738a5e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/max.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOnHyOu9IDloAQVlB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/max.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc738a5e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 57, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /max (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/max.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc738a5e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 57, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550435.0>, params: %{}, path_info: ["max"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-e (truncated) 19:20:19.274 [info] GET /post.php 19:20:19.275 [debug] QUERY OK source="settings" db=0.3ms idle=657.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:19.275 [debug] QUERY OK source="settings" db=0.1ms idle=657.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:19.276 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:19.276 [error] #PID<0.550436.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 58) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /post.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /post (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/post.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc93c19e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 58, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550436.0>, params: %{}, path_info: ["post"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbc93c19e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/post.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOoWONSgTGPgAQVlh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/post.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc93c19e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 58, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /post (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/post.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbc93c19e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 58, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550436.0>, params: %{}, path_info: ["post"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:19.601 [info] GET /themes.php 19:20:19.601 [debug] QUERY OK source="settings" db=0.2ms idle=655.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:19.602 [debug] QUERY OK source="settings" db=0.1ms idle=655.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:19.602 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:19.602 [error] #PID<0.550437.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 59) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /themes.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /themes (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/themes.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbcb4fc1e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 59, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550437.0>, params: %{}, path_info: ["themes"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbcb4fc1e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/themes.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOpkEmsbqYM8AQVmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/themes.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbcb4fc1e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 59, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /themes (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/themes.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbcb4fc1e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 59, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550437.0>, params: %{}, path_info: ["themes"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_header (truncated) 19:20:19.925 [info] GET /termps.php 19:20:19.926 [debug] QUERY OK source="settings" db=0.2ms idle=783.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:19.926 [debug] QUERY OK source="settings" db=0.1ms idle=650.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:19.926 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:19.927 [error] #PID<0.550438.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 60) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /termps.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /termps (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/termps.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbcd5c5de7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 60, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550438.0>, params: %{}, path_info: ["termps"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbcd5c5de7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/termps.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOqxbSr08bVgAQVmh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/termps.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbcd5c5de7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 60, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /termps (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/termps.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbcd5c5de7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 60, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550438.0>, params: %{}, path_info: ["termps"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_header (truncated) 19:20:20.250 [info] GET /brand.php 19:20:20.251 [debug] QUERY OK source="settings" db=0.2ms idle=648.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:20.251 [debug] QUERY OK source="settings" db=0.2ms idle=648.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:20.251 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:20.251 [error] #PID<0.550439.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 61) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /brand.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /brand (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/brand.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbcf5feee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 61, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550439.0>, params: %{}, path_info: ["brand"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbcf5feee7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/brand.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOr-zFmCetGwAQVnB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/brand.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbcf5feee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 61, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /brand (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/brand.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbcf5feee7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 61, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550439.0>, params: %{}, path_info: ["brand"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:20.582 [info] GET /9.php 19:20:20.583 [debug] QUERY OK source="settings" db=0.2ms idle=656.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:20.583 [debug] QUERY OK source="settings" db=0.1ms idle=656.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:20.583 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:20.583 [error] #PID<0.550440.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 62) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /9.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /9 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/9.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd16b55e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 62, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550440.0>, params: %{}, path_info: ["9"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbd16b55e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/9.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOtN-RzN8xRsAQVnh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/9.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd16b55e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 62, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /9 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/9.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd16b55e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 62, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550440.0>, params: %{}, path_info: ["9"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, b (truncated) 19:20:20.912 [info] GET /class.php 19:20:20.912 [debug] QUERY OK source="settings" db=0.2ms idle=769.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:20.913 [debug] QUERY OK source="settings" db=0.1ms idle=661.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:20.913 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:20.913 [error] #PID<0.550441.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 63) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /class.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /class (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/class.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd37eb3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 63, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550441.0>, params: %{}, path_info: ["class"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbd37eb3e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/class.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOuckEQ0OGCkAQVoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/class.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd37eb3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 63, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /class (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/class.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd37eb3e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 63, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550441.0>, params: %{}, path_info: ["class"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:21.257 [info] GET /file.php 19:20:21.258 [debug] QUERY OK source="settings" db=0.2ms idle=674.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:21.258 [debug] QUERY OK source="settings" db=0.1ms idle=674.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:21.258 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:21.258 [error] #PID<0.550442.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 64) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /file.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /file (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/file.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd58b3de7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 64, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550442.0>, params: %{}, path_info: ["file"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbd58b3de7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/file.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOvu59LRY9lcAQVoh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/file.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd58b3de7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 64, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /file (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/file.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd58b3de7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 64, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550442.0>, params: %{}, path_info: ["file"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:21.591 [info] GET /gulu.php 19:20:21.592 [debug] QUERY OK source="settings" db=0.2ms idle=678.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:21.592 [debug] QUERY OK source="settings" db=0.1ms idle=679.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:21.592 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:21.592 [error] #PID<0.550443.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 65) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /gulu.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gulu (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gulu.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd7bf12e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 65, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550443.0>, params: %{}, path_info: ["gulu"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbd7bf12e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/gulu.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOw-hjahsFucAQVpB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gulu.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd7bf12e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 65, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gulu (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gulu.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd7bf12e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 65, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550443.0>, params: %{}, path_info: ["gulu"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:21.931 [info] GET /1a.php 19:20:21.932 [debug] QUERY OK source="settings" db=0.2ms idle=787.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:21.932 [debug] QUERY OK source="settings" db=0.1ms idle=674.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:21.932 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:21.932 [error] #PID<0.550444.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 66) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /1a.php?p= ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /1a (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/1a.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd9daa0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 66, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550444.0>, params: %{"p" => ""}, path_info: ["1a"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbd9daa0e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/1a.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOyPmf7PSTlUAQVph"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/1a.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd9daa0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 66, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /1a (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/1a.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbd9daa0e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "p=", streamid: 66, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550444.0>, params: %{"p" => ""}, path_info: ["1a"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"p" => ""}, query_string: "p=", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, (truncated) 19:20:22.258 [info] GET /abcd.php 19:20:22.259 [debug] QUERY OK source="settings" db=0.2ms idle=666.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:22.259 [debug] QUERY OK source="settings" db=0.2ms idle=666.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:22.259 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:22.259 [error] #PID<0.550445.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 67) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /abcd.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /abcd (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/abcd.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbdbedf2e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 67, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550445.0>, params: %{}, path_info: ["abcd"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbdbedf2e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/abcd.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SOzdj-uNoodIAQVqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/abcd.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbdbedf2e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 67, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /abcd (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/abcd.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbdbedf2e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 67, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550445.0>, params: %{}, path_info: ["abcd"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ { (truncated) 19:20:22.586 [info] GET /gfile.php 19:20:22.587 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=655.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:22.587 [debug] QUERY OK source="settings" db=0.1ms idle=655.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:22.588 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:22.588 [error] #PID<0.550446.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 68) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /gfile.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gfile (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gfile.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbddf91de7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 68, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550446.0>, params: %{}, path_info: ["gfile"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbddf91de7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/gfile.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO0r3v8nbwaEAQVqh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gfile.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbddf91de7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 68, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gfile (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gfile.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbddf91de7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 68, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550446.0>, params: %{}, path_info: ["gfile"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:22.916 [info] GET /amdin.php 19:20:22.917 [debug] QUERY OK source="settings" db=0.3ms idle=771.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:22.918 [debug] QUERY OK source="settings" db=0.2ms idle=658.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:22.918 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:22.918 [error] #PID<0.550447.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 69) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /amdin.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /amdin (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/amdin.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe00d01e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 69, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550447.0>, params: %{}, path_info: ["amdin"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbe00d01e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/amdin.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO16ix7fWUBwAQVrB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/amdin.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe00d01e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 69, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /amdin (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/amdin.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe00d01e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 69, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550447.0>, params: %{}, path_info: ["amdin"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:23.244 [info] GET /sallu.php 19:20:23.245 [debug] QUERY OK source="settings" db=0.2ms idle=657.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:23.245 [debug] QUERY OK source="settings" db=0.1ms idle=657.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:23.245 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:23.245 [error] #PID<0.550448.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 70) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sallu.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sallu (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sallu.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe208f9e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 70, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550448.0>, params: %{}, path_info: ["sallu"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbe208f9e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/sallu.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO3Iq3R4cN24AQVrh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sallu.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe208f9e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 70, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sallu (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sallu.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe208f9e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 70, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550448.0>, params: %{}, path_info: ["sallu"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ (truncated) 19:20:23.570 [info] GET /blog/wp-login.php 19:20:23.570 [debug] QUERY OK source="settings" db=0.2ms idle=652.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:23.570 [debug] QUERY OK source="settings" db=0.1ms idle=652.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:23.571 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:23.571 [error] #PID<0.550449.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 71) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /blog/wp-login.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /blog/wp-login (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/blog/wp-login.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe41cbae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 71, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550449.0>, params: %{}, path_info: ["blog", "wp-login"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbe41cbae7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/blog/wp-login.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO4WRIHh8GicAQVsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/blog/wp-login.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe41cbae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 71, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /blog/wp-login (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/blog/wp-login.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe41cbae7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 71, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550449.0>, params: %{}, path_info: ["blog", "wp-login"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ (truncated) 19:20:23.897 [info] GET /replace.php 19:20:23.898 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=751.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:23.898 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=653.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:23.898 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:23.899 [error] #PID<0.550450.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 72) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /replace.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /replace (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/replace.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe628c9e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 72, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550450.0>, params: %{}, path_info: ["replace"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbe628c9e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/replace.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO5kb2AeoH0wAQVsh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/replace.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe628c9e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 72, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /replace (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/replace.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe628c9e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 72, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550450.0>, params: %{}, path_info: ["replace"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, r (truncated) 19:20:24.222 [info] GET /magento/index.php/admin/ 19:20:24.223 [debug] QUERY OK source="settings" db=0.2ms idle=652.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:24.223 [debug] QUERY OK source="settings" db=0.2ms idle=652.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:24.223 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:24.223 [error] #PID<0.550451.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 73) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /magento/index.php/admin/ ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /magento/index.php/admin (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/magento/index.php/admin/", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe82cdde7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 73, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550451.0>, params: %{}, path_info: ["magento", "index.php", "admin"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbe82cdde7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/magento/index.php/admin/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO6xzlHRWEcsAQVtB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/magento/index.php/admin/", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe82cdde7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 73, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /magento/index.php/admin (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/magento/index.php/admin/", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbe82cdde7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 73, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550451.0>, params: %{}, path_info: ["magento", "index.php", "admin"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} (truncated) 19:20:24.551 [info] GET /wp-content/admin.php 19:20:24.552 [debug] QUERY OK source="settings" db=0.2ms idle=653.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:24.552 [debug] QUERY OK source="settings" db=0.1ms idle=653.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:24.552 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:24.552 [error] #PID<0.550452.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 74) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-content/admin.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/admin (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/admin.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbea38f4e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 74, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550452.0>, params: %{}, path_info: ["wp-content", "admin"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbea38f4e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/wp-content/admin.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO8AP1X96iSAAQVth"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/admin.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbea38f4e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 74, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/admin (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/admin.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbea38f4e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 74, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550452.0>, params: %{}, path_info: ["wp-content", "admin"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_st (truncated) 19:20:24.878 [info] GET /config/cache.php 19:20:24.879 [debug] QUERY OK source="settings" db=0.1ms idle=731.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:24.879 [debug] QUERY OK source="settings" db=0.2ms idle=656.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:24.879 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:24.880 [error] #PID<0.550453.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 75) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /config/cache.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/cache (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/cache.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbec4d5fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 75, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550453.0>, params: %{}, path_info: ["config", "cache"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbec4d5fe7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/config/cache.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO9OVh4XMa-QAQVuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/cache.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbec4d5fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 75, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/cache (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/cache.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbec4d5fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 75, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550453.0>, params: %{}, path_info: ["config", "cache"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, (truncated) 19:20:25.212 [info] GET /lowfile.php 19:20:25.213 [debug] QUERY OK source="settings" db=0.5ms idle=660.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:25.213 [debug] QUERY OK source="settings" db=0.1ms idle=661.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:25.214 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:25.214 [error] #PID<0.550454.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 76) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /lowfile.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /lowfile (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/lowfile.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbee5941e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 76, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550454.0>, params: %{}, path_info: ["lowfile"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbee5941e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/lowfile.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO-d5Dq-AKPUAQVuh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/lowfile.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbee5941e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 76, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /lowfile (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/lowfile.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbee5941e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 76, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550454.0>, params: %{}, path_info: ["lowfile"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, r (truncated) 19:20:25.539 [info] GET /hinfofuns.php 19:20:25.540 [debug] QUERY OK source="settings" db=0.3ms idle=660.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:25.541 [debug] QUERY OK source="settings" db=0.1ms idle=660.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:25.541 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:25.541 [error] #PID<0.550455.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 77) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /hinfofuns.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /hinfofuns (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/hinfofuns.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf06d69e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 77, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550455.0>, params: %{}, path_info: ["hinfofuns"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbf06d69e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/hinfofuns.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SO_r7cjoujC0AQVvB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/hinfofuns.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf06d69e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 77, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /hinfofuns (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/hinfofuns.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf06d69e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 77, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550455.0>, params: %{}, path_info: ["hinfofuns"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies (truncated) 19:20:25.867 [info] GET /wp-admin/css/ 19:20:25.867 [debug] QUERY OK source="settings" db=0.1ms idle=719.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:25.868 [debug] QUERY OK source="settings" db=0.1ms idle=654.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:25.868 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:25.868 [error] #PID<0.550456.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 78) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-admin/css/ ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-admin/css (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-admin/css/", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf2799fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 78, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550456.0>, params: %{}, path_info: ["wp-admin", "css"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbf2799fe7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/wp-admin/css/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SPA6Avoln_9YAMulC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-admin/css/", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf2799fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 78, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-admin/css (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-admin/css/", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf2799fe7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 78, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550456.0>, params: %{}, path_info: ["wp-admin", "css"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, (truncated) 19:20:26.202 [info] GET /BDKR28WP.php 19:20:26.202 [debug] QUERY OK source="settings" db=0.2ms idle=661.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:26.202 [debug] QUERY OK source="settings" db=0.1ms idle=661.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:26.203 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:26.203 [error] #PID<0.550457.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 79) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /BDKR28WP.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /BDKR28WP (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/BDKR28WP.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf48d52e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 79, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550457.0>, params: %{}, path_info: ["BDKR28WP"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbf48d52e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/BDKR28WP.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SPCJzFDgNobEAQVvh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/BDKR28WP.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf48d52e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 79, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /BDKR28WP (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/BDKR28WP.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf48d52e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 79, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550457.0>, params: %{}, path_info: ["BDKR28WP"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, (truncated) 19:20:26.536 [info] GET /wp-content/plugins/simple/simple.php 19:20:26.537 [debug] QUERY OK source="settings" db=0.2ms idle=669.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:26.537 [debug] QUERY OK source="settings" db=0.0ms idle=669.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:26.537 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:26.538 [error] #PID<0.550458.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 80) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-content/plugins/simple/simple.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/plugins/simple/simple (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/plugins/simple/simple.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf6a962e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 80, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550458.0>, params: %{}, path_info: ["wp-content", "plugins", "simple", "simple"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbf6a962e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/wp-content/plugins/simple/simple.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SPDZm6q6oLSIAQVwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/plugins/simple/simple.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf6a962e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 80, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/plugins/simple/simple (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/plugins/simple/simple.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf6a962e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 80, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550458.0>, params: %{}, path_info: ["wp-content", "plugins", "simple", "simple"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content. (truncated) 19:20:26.862 [info] GET /sm.php 19:20:26.863 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=713.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:26.864 [debug] QUERY OK source="settings" db=0.1ms idle=661.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:26.864 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:26.864 [error] #PID<0.550459.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 81) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sm.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sm (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sm.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf8ad44e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 81, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550459.0>, params: %{}, path_info: ["sm"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbf8ad44e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/sm.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SPEnWrjhZs7wAQVwh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sm.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf8ad44e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 81, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sm (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sm.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbf8ad44e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 81, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550459.0>, params: %{}, path_info: ["sm"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", (truncated) 19:20:27.206 [info] GET /wp-admin/css/colors/modern/ 19:20:27.207 [debug] QUERY OK source="settings" db=0.2ms idle=669.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:27.207 [debug] QUERY OK source="settings" db=0.1ms idle=669.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:27.207 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:27.208 [error] #PID<0.550460.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 82) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-admin/css/colors/modern/ ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-admin/css/colors/modern (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-admin/css/colors/modern/", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbfab932e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 82, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550460.0>, params: %{}, path_info: ["wp-admin", "css", "colors", "modern"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbfab932e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/wp-admin/css/colors/modern/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SPF5YB9NvYskAQVxB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-admin/css/colors/modern/", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbfab932e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 82, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-admin/css/colors/modern (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-admin/css/colors/modern/", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbfab932e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 82, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550460.0>, params: %{}, path_info: ["wp-admin", "css", "colors", "modern"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_ (truncated) 19:20:27.538 [info] GET /0.php 19:20:27.539 [debug] QUERY OK source="settings" db=0.2ms idle=675.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:27.539 [debug] QUERY OK source="settings" db=0.1ms idle=675.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:27.539 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:27.540 [error] #PID<0.550461.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 83) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /0.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /0 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/0.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbfced48e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 83, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550461.0>, params: %{}, path_info: ["0"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbfced48e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/0.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SPHIhkTtzyWoAQVxh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/0.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbfced48e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 83, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /0 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/0.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbfced48e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 83, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550461.0>, params: %{}, path_info: ["0"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, b (truncated) 19:20:27.865 [info] GET /wp-includes/SimplePie/about.php 19:20:27.866 [debug] QUERY OK source="settings" db=0.3ms idle=715.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:27.866 [debug] QUERY OK source="settings" db=0.1ms idle=658.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:27.866 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:27.866 [error] #PID<0.550462.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 84) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-includes/SimplePie/about.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-includes/SimplePie/about (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-includes/SimplePie/about.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbfef8fce7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 84, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550462.0>, params: %{}, path_info: ["wp-includes", "SimplePie", "about"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bbfef8fce7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/wp-includes/SimplePie/about.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SPIWXDLIATwoAQVyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-includes/SimplePie/about.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbfef8fce7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 84, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-includes/SimplePie/about (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-includes/SimplePie/about.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bbfef8fce7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 84, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550462.0>, params: %{}, path_info: ["wp-includes", "SimplePie", "about"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_lo (truncated) 19:20:28.192 [info] GET /f6.php 19:20:28.192 [debug] QUERY OK source="settings" db=0.1ms idle=653.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:28.193 [debug] QUERY OK source="settings" db=0.1ms idle=653.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:28.193 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:20:28.193 [error] #PID<0.550463.0> running PinchflatWeb.Endpoint (connection #PID<0.550376.0>, stream id 85) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /f6.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /f6 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/f6.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bc00fc78e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 85, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550463.0>, params: %{}, path_info: ["f6"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "52.187.230.78"}, {"cf-ipcountry", "AU"}, {"cf-ray", "a4b8bc00fc78e7e1-SYD"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"x-forwarded-for", "52.187.230.78, 162.158.168.205"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.168.205"} ], request_path: "/f6.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8SPJkUUmCbGzEAQVyh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/f6.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bc00fc78e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 85, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /f6 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550376.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/f6.php", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 53314}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "52.187.230.78", "cf-ipcountry" => "AU", "cf-ray" => "a4b8bc00fc78e7e1-SYD", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "x-forwarded-for" => "52.187.230.78, 162.158.168.205", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.168.205" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 85, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550463.0>, params: %{}, path_info: ["f6"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", (truncated) 19:20:28.926 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:20:58.927 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:21:00.034 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:21:28.928 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:21:58.929 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:22:00.035 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:22:28.930 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:22:58.931 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:23:00.036 [info] {"source":"oban","duration":245,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:23:28.932 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:23:58.933 [info] {"source":"oban","duration":744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:24:00.037 [info] {"source":"oban","duration":344,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:24:28.934 [info] {"source":"oban","duration":673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:24:58.935 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:25:00.038 [info] {"source":"oban","duration":375,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:25:28.936 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:25:58.937 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:26:00.039 [info] {"source":"oban","duration":306,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:26:28.938 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:26:58.939 [info] {"source":"oban","duration":642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:27:00.040 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:27:28.940 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:27:58.941 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:28:00.042 [info] {"source":"oban","duration":1232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:28:28.942 [info] {"source":"oban","duration":771,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:28:58.943 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:29:00.043 [info] {"source":"oban","duration":211,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:29:28.944 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:29:58.945 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:30:00.044 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:30:28.946 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:30:58.947 [info] {"source":"oban","duration":587,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:31:00.046 [info] {"source":"oban","duration":997,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:31:28.948 [info] {"source":"oban","duration":579,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:31:58.949 [info] {"source":"oban","duration":569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:32:00.047 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:32:28.950 [info] {"source":"oban","duration":509,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:32:58.951 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:33:00.048 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:33:28.952 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:33:58.953 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:34:00.052 [info] {"source":"oban","duration":623,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:34:28.954 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:34:58.955 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:35:00.052 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:35:28.956 [info] {"source":"oban","duration":764,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:35:58.957 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:36:00.053 [info] {"source":"oban","duration":246,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:36:28.958 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:36:58.959 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:37:00.054 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:37:28.960 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:37:58.961 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:38:00.055 [info] {"source":"oban","duration":232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:38:28.962 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:38:58.963 [info] {"source":"oban","duration":758,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:39:00.056 [info] {"source":"oban","duration":380,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:39:28.964 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:39:58.965 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:40:00.057 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:40:28.966 [info] {"source":"oban","duration":772,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:40:58.967 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:41:00.059 [info] {"source":"oban","duration":438,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:41:28.968 [info] {"source":"oban","duration":760,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:41:58.969 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:42:00.059 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:42:28.970 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:42:58.971 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:43:00.061 [info] {"source":"oban","duration":442,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:43:28.972 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:43:58.973 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:44:00.062 [info] {"source":"oban","duration":212,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:44:28.974 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:44:58.975 [info] {"source":"oban","duration":763,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:45:00.063 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:45:28.976 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:45:58.977 [info] {"source":"oban","duration":842,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:46:00.064 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:46:28.979 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:46:58.980 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:47:00.065 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:47:28.981 [info] {"source":"oban","duration":631,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:47:58.982 [info] {"source":"oban","duration":517,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:48:00.066 [info] {"source":"oban","duration":246,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:48:28.983 [info] {"source":"oban","duration":574,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:48:58.984 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:49:00.067 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:49:28.985 [info] {"source":"oban","duration":829,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:49:58.986 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:50:00.068 [info] {"source":"oban","duration":242,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:50:28.987 [info] {"source":"oban","duration":765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:50:58.988 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:51:00.069 [info] {"source":"oban","duration":248,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:51:28.989 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:51:58.990 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:52:00.070 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:52:28.991 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:52:58.992 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:53:00.071 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:53:28.993 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:53:58.994 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:54:00.072 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:54:28.995 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:54:58.996 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:55:00.073 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:55:28.997 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:55:58.998 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:56:00.074 [info] {"source":"oban","duration":275,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:56:28.999 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:56:59.000 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:57:00.075 [info] {"source":"oban","duration":240,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:57:29.001 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:57:59.002 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:58:00.076 [info] {"source":"oban","duration":222,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:58:25.755 [info] GET /.git/HEAD 19:58:25.755 [debug] QUERY OK source="settings" db=0.2ms idle=1346.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:58:25.756 [debug] QUERY OK source="settings" db=0.1ms idle=1347.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:58:25.756 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 19:58:25.756 [error] #PID<0.550674.0> running PinchflatWeb.Endpoint (connection #PID<0.550673.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /.git/HEAD ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/HEAD (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550673.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42322}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "91.92.240.86", "cf-ipcountry" => "DE", "cf-ray" => "a4b8f39c1be8baeb-MXP", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "fasthttp", "x-forwarded-for" => "91.92.240.86, 172.71.114.18", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.114.18" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550674.0>, params: %{}, path_info: [".git", "HEAD"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "91.92.240.86"}, {"cf-ipcountry", "DE"}, {"cf-ray", "a4b8f39c1be8baeb-MXP"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "fasthttp"}, {"x-forwarded-for", "91.92.240.86, 172.71.114.18"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.114.18"} ], request_path: "/.git/HEAD", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8UTuJmlaLhvLUAMvHC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550673.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42322}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "91.92.240.86", "cf-ipcountry" => "DE", "cf-ray" => "a4b8f39c1be8baeb-MXP", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "fasthttp", "x-forwarded-for" => "91.92.240.86, 172.71.114.18", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.114.18" }, 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 /.git/HEAD (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550673.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42322}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "91.92.240.86", "cf-ipcountry" => "DE", "cf-ray" => "a4b8f39c1be8baeb-MXP", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "fasthttp", "x-forwarded-for" => "91.92.240.86, 172.71.114.18", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.114.18" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550674.0>, params: %{}, path_info: [".git", "HEAD"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, (truncated) 19:58:29.003 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:58:59.004 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:59:00.077 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:59:29.005 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:59:59.006 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:00:00.078 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:00:29.007 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:00:59.008 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:01:00.079 [info] {"source":"oban","duration":231,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:01:29.009 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:01:59.010 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:02:00.080 [info] {"source":"oban","duration":234,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:02:29.011 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:02:59.012 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:03:00.081 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:03:29.013 [info] {"source":"oban","duration":554,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:03:59.014 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:04:00.082 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:04:29.015 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:04:59.016 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:05:00.083 [info] {"source":"oban","duration":212,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:05:29.017 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:05:59.018 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:06:00.084 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:06:29.019 [info] {"source":"oban","duration":748,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:06:59.020 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:07:00.085 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:07:29.021 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:07:59.022 [info] {"source":"oban","duration":786,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:08:00.086 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:08:29.023 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:08:59.024 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:09:00.087 [info] {"source":"oban","duration":244,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:09:29.025 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:09:59.026 [info] {"source":"oban","duration":813,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:10:00.088 [info] {"source":"oban","duration":321,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:10:29.027 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:10:59.028 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:11:00.089 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:11:29.029 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:11:59.030 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:12:00.090 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:12:29.031 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:12:59.032 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:13:00.091 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:13:29.033 [info] {"source":"oban","duration":784,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:13:59.034 [info] {"source":"oban","duration":642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:14:00.092 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:14:29.035 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:14:59.036 [info] {"source":"oban","duration":868,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:15:00.093 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:15:29.038 [info] {"source":"oban","duration":1293,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:15:59.040 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:16:00.094 [info] {"source":"oban","duration":170,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:16:29.041 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:16:59.042 [info] {"source":"oban","duration":733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:17:00.095 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:17:29.043 [info] {"source":"oban","duration":629,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:17:59.044 [info] {"source":"oban","duration":622,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:18:00.096 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:18:29.045 [info] {"source":"oban","duration":636,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:18:59.046 [info] {"source":"oban","duration":502,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:19:00.097 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:19:29.046 [info] {"source":"oban","duration":447,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:19:59.048 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:20:00.098 [info] {"source":"oban","duration":173,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:20:29.049 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:20:59.050 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:21:00.099 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:21:29.052 [info] {"source":"oban","duration":2012,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:21:59.054 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:22:00.100 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:22:29.055 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:22:59.056 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:23:00.101 [info] {"source":"oban","duration":210,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:23:29.057 [info] {"source":"oban","duration":783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:23:59.058 [info] {"source":"oban","duration":787,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:24:00.102 [info] {"source":"oban","duration":175,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:24:29.059 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:24:59.060 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:25:00.103 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:25:29.061 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:25:59.062 [info] {"source":"oban","duration":671,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:26:00.104 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:26:29.063 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:26:59.064 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:27:00.105 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:27:29.065 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:27:59.066 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:28:00.106 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:28:29.067 [info] {"source":"oban","duration":1336,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:28:59.069 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:29:00.107 [info] {"source":"oban","duration":263,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:29:29.070 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:29:59.071 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:30:00.108 [info] {"source":"oban","duration":231,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:30:29.072 [info] {"source":"oban","duration":758,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:30:59.073 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:31:00.109 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:31:29.074 [info] {"source":"oban","duration":632,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:31:59.075 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:32:00.110 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:32:29.076 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:32:31.209 [info] GET /sitemap.xml 20:32:31.210 [debug] QUERY OK source="settings" db=0.1ms idle=770.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:32:31.210 [debug] QUERY OK source="settings" db=0.1ms idle=770.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:32:31.210 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:32:31.211 [error] #PID<0.550864.0> running PinchflatWeb.Endpoint (connection #PID<0.550862.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550862.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 49088}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.54", "cf-ipcountry" => "US", "cf-ray" => "a4b9258af8a5bdc9-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.54, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550864.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.54"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4b9258af8a5bdc9-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.54, 162.159.114.111"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.159.114.111"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8WKyEA081X0hgAMvjC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550862.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 49088}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.54", "cf-ipcountry" => "US", "cf-ray" => "a4b9258af8a5bdc9-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.54, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550862.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 49088}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.54", "cf-ipcountry" => "US", "cf-ray" => "a4b9258af8a5bdc9-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.54, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550864.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 20:32:59.077 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:33:00.111 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:33:29.078 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:33:59.079 [info] {"source":"oban","duration":556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:34:00.112 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:34:29.080 [info] {"source":"oban","duration":547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:34:59.081 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:35:00.113 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:35:29.082 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:35:59.083 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:36:00.114 [info] {"source":"oban","duration":212,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:36:29.084 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:36:59.085 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:37:00.115 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:37:29.086 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:37:59.087 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:38:00.116 [info] {"source":"oban","duration":231,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:38:29.088 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:38:59.089 [info] {"source":"oban","duration":762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:39:00.117 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:39:29.090 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:39:59.091 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:40:00.118 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:40:29.092 [info] {"source":"oban","duration":649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:40:59.093 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:41:00.119 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:41:29.094 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:41:59.095 [info] {"source":"oban","duration":752,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:42:00.120 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:42:29.096 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:42:59.097 [info] {"source":"oban","duration":756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:43:00.121 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:43:29.098 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:43:59.099 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:44:00.122 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:44:29.100 [info] {"source":"oban","duration":673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:44:59.101 [info] {"source":"oban","duration":648,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:45:00.123 [info] {"source":"oban","duration":249,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:45:29.102 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:45:59.103 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:46:00.124 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:46:29.104 [info] {"source":"oban","duration":741,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:46:59.105 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:47:00.125 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:47:29.106 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:47:59.107 [info] {"source":"oban","duration":773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:48:00.126 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:48:29.108 [info] {"source":"oban","duration":619,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:48:59.109 [info] {"source":"oban","duration":599,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:49:00.128 [info] {"source":"oban","duration":442,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:49:29.110 [info] {"source":"oban","duration":534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:49:59.111 [info] {"source":"oban","duration":799,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:50:00.128 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:50:29.112 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:50:59.113 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:51:00.129 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:51:29.114 [info] {"source":"oban","duration":761,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:51:59.115 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:52:00.130 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:52:29.116 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:52:59.117 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:53:00.131 [info] {"source":"oban","duration":218,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:53:29.118 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:53:59.119 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:54:00.132 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:54:29.120 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:54:59.121 [info] {"source":"oban","duration":739,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:55:00.133 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:55:29.122 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:55:59.123 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:56:00.134 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:56:29.124 [info] {"source":"oban","duration":832,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:56:44.171 [info] GET /sitemap.xml 20:56:44.172 [debug] QUERY OK source="settings" db=0.2ms idle=1721.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:44.172 [debug] QUERY OK source="settings" db=0.2ms idle=1721.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:44.172 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:56:44.173 [error] #PID<0.550999.0> running PinchflatWeb.Endpoint (connection #PID<0.550998.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550998.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60408}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.54", "cf-ipcountry" => "US", "cf-ray" => "a4b949043a82910d-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.54, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550999.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.54"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4b949043a82910d-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.54, 162.159.114.111"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.159.114.111"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8XfWxA5dswFNoAMvzi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550998.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60408}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.54", "cf-ipcountry" => "US", "cf-ray" => "a4b949043a82910d-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.54, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.550998.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60408}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.54", "cf-ipcountry" => "US", "cf-ray" => "a4b949043a82910d-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.54, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.550999.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 20:56:59.125 [info] {"source":"oban","duration":767,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:57:00.135 [info] {"source":"oban","duration":225,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:57:29.126 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:57:59.127 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:58:00.136 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:58:29.128 [info] {"source":"oban","duration":797,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:58:59.129 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:59:00.137 [info] {"source":"oban","duration":219,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:59:29.130 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:59:59.131 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:00:00.138 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:00:29.132 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:00:59.133 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:01:00.139 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:01:29.134 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:01:59.135 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:02:00.140 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:02:29.136 [info] {"source":"oban","duration":778,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:02:59.137 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:03:00.141 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:03:29.138 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:03:59.139 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:04:00.142 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:04:29.140 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:04:59.141 [info] {"source":"oban","duration":531,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:05:00.143 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:05:29.142 [info] {"source":"oban","duration":483,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:05:59.143 [info] {"source":"oban","duration":801,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:06:00.144 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:06:29.144 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:06:59.145 [info] {"source":"oban","duration":792,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:07:00.145 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:07:29.146 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:07:59.147 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:08:00.146 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:08:29.148 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:08:59.149 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:09:00.147 [info] {"source":"oban","duration":248,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:09:29.150 [info] {"source":"oban","duration":779,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:09:59.151 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:10:00.149 [info] {"source":"oban","duration":613,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:10:29.152 [info] {"source":"oban","duration":1229,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:10:59.154 [info] {"source":"oban","duration":901,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:11:00.149 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:11:29.156 [info] {"source":"oban","duration":772,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:11:59.157 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:12:00.150 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:12:29.158 [info] {"source":"oban","duration":846,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:12:59.160 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:13:00.151 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:13:29.161 [info] {"source":"oban","duration":803,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:13:59.162 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:14:00.152 [info] {"source":"oban","duration":252,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:14:29.163 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:14:59.164 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:15:00.153 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:15:29.165 [info] {"source":"oban","duration":515,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:15:59.166 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:16:00.154 [info] {"source":"oban","duration":242,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:16:29.167 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:16:59.168 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:17:00.155 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:17:29.169 [info] {"source":"oban","duration":808,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:17:59.173 [info] {"source":"oban","duration":2969,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:18:00.156 [info] {"source":"oban","duration":380,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:18:29.178 [info] {"source":"oban","duration":1766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:18:59.180 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:19:00.157 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:19:29.181 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:19:59.182 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:20:00.158 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:20:29.183 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:20:59.184 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:21:00.159 [info] {"source":"oban","duration":235,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:21:29.185 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:21:59.186 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:22:00.160 [info] {"source":"oban","duration":222,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:22:29.187 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:22:59.188 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:23:00.161 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:23:29.189 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:23:59.190 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:24:00.162 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:24:29.191 [info] {"source":"oban","duration":733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:24:59.192 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:25:00.163 [info] {"source":"oban","duration":309,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:25:29.193 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:25:59.194 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:26:00.164 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:26:29.195 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:26:59.196 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:27:00.165 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:27:29.197 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:27:59.198 [info] {"source":"oban","duration":620,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:28:00.166 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:28:29.199 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:28:59.200 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:29:00.167 [info] {"source":"oban","duration":177,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:29:29.201 [info] {"source":"oban","duration":591,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:29:59.202 [info] {"source":"oban","duration":598,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:30:00.168 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:30:29.203 [info] {"source":"oban","duration":513,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:30:59.203 [info] {"source":"oban","duration":430,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:31:00.169 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:31:29.205 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:31:59.206 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:32:00.170 [info] {"source":"oban","duration":210,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:32:29.207 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:32:59.208 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:33:00.171 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:33:29.209 [info] {"source":"oban","duration":733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:33:59.210 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:34:00.172 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:34:29.211 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:34:59.212 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:35:00.173 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:35:29.213 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:35:59.214 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:36:00.174 [info] {"source":"oban","duration":355,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:36:29.215 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:36:59.216 [info] {"source":"oban","duration":1199,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:37:00.175 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:37:29.218 [info] {"source":"oban","duration":795,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:37:59.220 [info] {"source":"oban","duration":800,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:38:00.176 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:38:29.221 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:38:59.222 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:39:00.177 [info] {"source":"oban","duration":171,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:39:29.223 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:39:59.224 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:40:00.178 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:40:29.225 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:40:59.226 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:41:00.179 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:41:29.227 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:41:59.228 [info] {"source":"oban","duration":762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:42:00.180 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:42:29.229 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:42:59.230 [info] {"source":"oban","duration":806,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:43:00.181 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:43:29.231 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:43:59.232 [info] {"source":"oban","duration":737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:44:00.182 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:44:29.233 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:44:59.234 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:45:00.183 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:45:29.235 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:45:59.236 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:46:00.184 [info] {"source":"oban","duration":156,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:46:29.237 [info] {"source":"oban","duration":528,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:46:59.238 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:47:00.185 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:47:29.239 [info] {"source":"oban","duration":470,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:47:59.240 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:48:00.186 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:48:29.241 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:48:59.242 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:49:00.187 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:49:29.243 [info] {"source":"oban","duration":744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:49:59.244 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:50:00.188 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:50:29.245 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:50:59.246 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:51:00.189 [info] {"source":"oban","duration":375,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:51:29.247 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:51:59.248 [info] {"source":"oban","duration":755,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:52:00.191 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:52:29.249 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:52:59.250 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:53:00.192 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:53:29.251 [info] {"source":"oban","duration":812,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:53:59.252 [info] {"source":"oban","duration":774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:54:00.193 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:54:29.253 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:54:59.254 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:55:00.194 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:55:29.255 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:55:59.256 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:56:00.195 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:56:29.257 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:56:59.258 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:57:00.196 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:57:29.259 [info] {"source":"oban","duration":765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:57:59.260 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:58:00.197 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:58:29.261 [info] {"source":"oban","duration":761,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:58:59.262 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:59:00.198 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:59:29.263 [info] {"source":"oban","duration":840,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:59:59.265 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:00:00.199 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:00:29.266 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:00:59.267 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:01:00.200 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:01:29.268 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:01:59.269 [info] {"source":"oban","duration":754,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:02:00.201 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:02:29.270 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:02:59.271 [info] {"source":"oban","duration":553,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:03:00.202 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:03:29.272 [info] {"source":"oban","duration":555,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:03:59.273 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:04:00.203 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:04:29.274 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:04:59.275 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:05:00.204 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:05:29.276 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:05:59.277 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:06:00.205 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:06:29.278 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:06:59.279 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:07:00.206 [info] {"source":"oban","duration":224,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:07:29.280 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:07:59.281 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:08:00.207 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:08:29.282 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:08:59.283 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:09:00.208 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:09:29.284 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:09:59.285 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:10:00.209 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:10:29.286 [info] {"source":"oban","duration":746,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:10:59.287 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:11:00.210 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:11:29.288 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:11:59.289 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:12:00.211 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:12:29.290 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:12:59.291 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:13:00.212 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:13:29.292 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:13:59.293 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:14:00.213 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:14:29.294 [info] {"source":"oban","duration":758,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:14:59.295 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:15:00.214 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:15:29.296 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:15:59.297 [info] {"source":"oban","duration":675,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:16:00.215 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:16:29.298 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:16:59.299 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:17:00.216 [info] {"source":"oban","duration":212,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:17:29.300 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:17:59.301 [info] {"source":"oban","duration":614,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:18:00.217 [info] {"source":"oban","duration":158,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:18:29.302 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:18:59.303 [info] {"source":"oban","duration":572,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:19:00.218 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:19:29.304 [info] {"source":"oban","duration":502,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:19:59.305 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:20:00.219 [info] {"source":"oban","duration":244,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:20:29.306 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:20:59.307 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:21:00.220 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:21:22.484 [info] GET /sitemap.xml 22:21:22.497 [debug] QUERY OK source="settings" db=0.1ms idle=1939.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:22.497 [debug] QUERY OK source="settings" db=0.1ms idle=1951.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:22.497 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:21:22.498 [error] #PID<0.551466.0> running PinchflatWeb.Endpoint (connection #PID<0.551465.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.551465.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35300}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4b9c5000faa891a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.551466.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4b9c5000faa891a-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 162.159.114.111"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.159.114.111"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8cG89SiAmpnuQABlmj"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.551465.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35300}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4b9c5000faa891a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.551465.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35300}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4b9c5000faa891a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 162.159.114.111", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.114.111" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.551466.0>, params: %{}, path_info: ["sitemap"], path_par (truncated) 22:21:25.046 [info] GET / 22:21:25.046 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 22:21:25.046 [debug] QUERY OK source="settings" db=0.1ms idle=1501.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:25.047 [debug] QUERY OK source="media_profiles" db=0.5ms idle=1501.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 22:21:25.048 [debug] QUERY OK source="sources" db=0.3ms idle=1502.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 22:21:25.051 [debug] QUERY OK source="media_items" db=3.3ms idle=642.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:21:25.052 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=506.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:21:25.052 [debug] QUERY OK source="settings" db=0.1ms idle=5.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:25.053 [debug] QUERY OK source="settings" db=0.1ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:25.053 [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 [] 22:21:25.054 [debug] QUERY OK source="tasks" db=0.2ms idle=2.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:21:25.056 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:21:25.056 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:21:25.057 [debug] QUERY OK source="sources" db=0.3ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 22:21:25.064 [debug] QUERY OK source="media_items" db=3.7ms idle=6.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:21:25.066 [debug] QUERY OK source="media_items" db=1.9ms idle=9.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:21:25.067 [info] Sent 200 in 21ms 22:21:29.308 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:21:57.448 [info] {"args":{"id":3},"id":6574,"meta":{},"system_time":1792182117448776826,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 22:21:57.449 [debug] QUERY OK source="sources" db=0.6ms idle=903.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:21:57.450 [debug] QUERY OK source="settings" db=0.7ms idle=904.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:57.451 [debug] QUERY OK source="media_items" db=0.5ms idle=905.4ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 22:21:57.452 [debug] QUERY OK source="media_items" db=0.6ms idle=10.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 22:21:57.452 [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] 22:21:57.453 [debug] QUERY OK source="settings" db=0.1ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:57.453 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:57.454 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 22:21:57.454 [debug] Current batch of media processed. Will check again in 1000ms 22:21:57.455 [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 [] 22:21:57.455 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:57.455 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:57.455 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLQJc0AKwP-an6_0X-ZX9pzXAHn5pQXqTd --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/shows/Livet på gården/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/5c/c8/5cc8ee3f58f4ff90144d1e62761c984a41d5fd0bb99e50d51c45696d04b7a38b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:21:58.455 [debug] Current batch of media processed. Will check again in 1000ms 22:21:59.309 [info] {"source":"oban","duration":1074,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:21:59.456 [debug] Current batch of media processed. Will check again in 1000ms 22:22:00.221 [info] {"source":"oban","duration":218,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:22:00.457 [debug] Current batch of media processed. Will check again in 1000ms 22:22:01.458 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 1584, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", "id" => "0HQ2lA9SaEw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0HQ2lA9SaEw", "playlist_index" => 1, "timestamp" => 1715241600, "title" => "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "upload_date" => "20240509"} 22:22:01.459 [debug] QUERY OK source="sources" db=0.4ms idle=1013.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:01.460 [debug] QUERY OK source="sources" db=0.2ms idle=914.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:01.460 [debug] QUERY OK source="media_items" db=0.6ms idle=914.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-09 08:00:00Z], 3] 22:22:01.462 [debug] QUERY OK source="media_items" db=1.2ms idle=915.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "dcf1e3da-82c2-4374-bf25-d216cc83df79", "0HQ2lA9SaEw", false, 1584, false, "https://www.youtube.com/watch?v=0HQ2lA9SaEw", 1, "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", false, false, 3, [], 1, ~U[2024-05-09 08:00:00Z], ~U[2026-10-16 20:22:01Z], ~U[2026-10-16 20:22:01Z], "Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "0HQ2lA9SaEw", 1584, false, "https://www.youtube.com/watch?v=0HQ2lA9SaEw", "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", false, 3, ~U[2024-05-09 08:00:00Z]] 22:22:01.463 [debug] QUERY OK source="sources" db=0.2ms idle=16.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:01.464 [debug] QUERY OK source="media_profiles" db=0.8ms 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] 22:22:01.465 [debug] QUERY OK source="media_items" db=0.9ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [225] 22:22:01.465 [debug] Current batch of media processed. Will check again in 1000ms 22:22:02.466 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 1514, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", "id" => "TsAkJcpR_Io", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TsAkJcpR_Io", "playlist_index" => 2, "timestamp" => 1715868032, "title" => "Vi får en hundehvalp | Livet på gården Ep. 2", "upload_date" => "20240516"} 22:22:02.467 [debug] QUERY OK source="sources" db=0.3ms idle=1004.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:02.468 [debug] QUERY OK source="sources" db=0.5ms idle=1004.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:02.469 [debug] QUERY OK source="media_items" db=0.6ms idle=1004.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-16 14:00:32Z], 3] 22:22:02.470 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får en hundehvalp | Livet på gården Ep. 2", "f08c46e6-61d5-4276-8cca-cdaa61f6d9c5", "TsAkJcpR_Io", false, 1514, false, "https://www.youtube.com/watch?v=TsAkJcpR_Io", 2, "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", false, false, 3, [], 1, ~U[2024-05-16 14:00:32Z], ~U[2026-10-16 20:22:02Z], ~U[2026-10-16 20:22:02Z], "I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får en hundehvalp | Livet på gården Ep. 2", "TsAkJcpR_Io", 1514, false, "https://www.youtube.com/watch?v=TsAkJcpR_Io", "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", false, 3, ~U[2024-05-16 14:00:32Z]] 22:22:02.470 [debug] QUERY OK source="sources" db=0.2ms idle=23.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:02.471 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:02.472 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [226] 22:22:02.472 [debug] Current batch of media processed. Will check again in 1000ms 22:22:03.472 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 1483, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", "id" => "mzYiI1eVSe8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mzYiI1eVSe8", "playlist_index" => 3, "timestamp" => 1716472844, "title" => "Vi graver ud i huset | Livet på gården Ep.3", "upload_date" => "20240523"} 22:22:03.473 [debug] QUERY OK source="sources" db=0.3ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:03.473 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:03.474 [debug] QUERY OK source="media_items" db=0.6ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-23 14:00:44Z], 3] 22:22:03.476 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi graver ud i huset | Livet på gården Ep.3", "d95a51be-5c03-4407-bbf3-6faf95dbacbe", "mzYiI1eVSe8", false, 1483, false, "https://www.youtube.com/watch?v=mzYiI1eVSe8", 3, "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", false, false, 3, [], 1, ~U[2024-05-23 14:00:44Z], ~U[2026-10-16 20:22:03Z], ~U[2026-10-16 20:22:03Z], "I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi graver ud i huset | Livet på gården Ep.3", "mzYiI1eVSe8", 1483, false, "https://www.youtube.com/watch?v=mzYiI1eVSe8", "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", false, 3, ~U[2024-05-23 14:00:44Z]] 22:22:03.477 [debug] QUERY OK source="sources" db=0.3ms idle=28.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:03.477 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:03.478 [debug] QUERY OK source="media_items" db=0.3ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [227] 22:22:03.478 [debug] Current batch of media processed. Will check again in 1000ms 22:22:04.479 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 2520, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", "id" => "0jEgoy_T4E4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0jEgoy_T4E4", "playlist_index" => 4, "timestamp" => 1717077602, "title" => "En hest i stuen og døde høns | Livet på gården Ep. 4", "upload_date" => "20240530"} 22:22:04.480 [debug] QUERY OK source="sources" db=0.3ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:04.481 [debug] QUERY OK source="sources" db=0.2ms idle=1003.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:04.482 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-30 14:00:02Z], 3] 22:22:04.484 [debug] QUERY OK source="media_items" db=1.1ms idle=1004.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "En hest i stuen og døde høns | Livet på gården Ep. 4", "9fda733a-068a-469e-b7fb-7ebe1bc6ad42", "0jEgoy_T4E4", false, 2520, false, "https://www.youtube.com/watch?v=0jEgoy_T4E4", 4, "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", false, false, 3, [], 1, ~U[2024-05-30 14:00:02Z], ~U[2026-10-16 20:22:04Z], ~U[2026-10-16 20:22:04Z], "I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "En hest i stuen og døde høns | Livet på gården Ep. 4", "0jEgoy_T4E4", 2520, false, "https://www.youtube.com/watch?v=0jEgoy_T4E4", "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", false, 3, ~U[2024-05-30 14:00:02Z]] 22:22:04.485 [debug] QUERY OK source="sources" db=0.4ms idle=35.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:04.485 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:04.486 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [228] 22:22:04.486 [debug] Current batch of media processed. Will check again in 1000ms 22:22:05.487 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 2357, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", "id" => "w_MEeum-cxQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=w_MEeum-cxQ", "playlist_index" => 5, "timestamp" => 1717682457, "title" => "Vi får kyllinger og køkken | Livet på gården Ep.5", "upload_date" => "20240606"} 22:22:05.488 [debug] QUERY OK source="sources" db=0.2ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:05.488 [debug] QUERY OK source="sources" db=0.1ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:05.489 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-06 14:00:57Z], 3] 22:22:05.491 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får kyllinger og køkken | Livet på gården Ep.5", "39d82cf8-8d25-4a89-9d9a-f48f1658cfac", "w_MEeum-cxQ", false, 2357, false, "https://www.youtube.com/watch?v=w_MEeum-cxQ", 5, "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", false, false, 3, [], 1, ~U[2024-06-06 14:00:57Z], ~U[2026-10-16 20:22:05Z], ~U[2026-10-16 20:22:05Z], "I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får kyllinger og køkken | Livet på gården Ep.5", "w_MEeum-cxQ", 2357, false, "https://www.youtube.com/watch?v=w_MEeum-cxQ", "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", false, 3, ~U[2024-06-06 14:00:57Z]] 22:22:05.491 [debug] QUERY OK source="sources" db=0.2ms idle=40.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:05.492 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:05.493 [debug] QUERY OK source="media_items" db=0.3ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [229] 22:22:05.493 [debug] Current batch of media processed. Will check again in 1000ms 22:22:06.493 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1911, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", "id" => "LgpqgWbzuiM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LgpqgWbzuiM", "playlist_index" => 6, "timestamp" => 1718287214, "title" => "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "upload_date" => "20240613"} 22:22:06.494 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:06.494 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:06.495 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-13 14:00:14Z], 3] 22:22:06.496 [debug] QUERY OK source="media_items" db=0.8ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "72da14d9-90b1-4649-9c93-3fb38e2f42ec", "LgpqgWbzuiM", false, 1911, false, "https://www.youtube.com/watch?v=LgpqgWbzuiM", 6, "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", false, false, 3, [], 1, ~U[2024-06-13 14:00:14Z], ~U[2026-10-16 20:22:06Z], ~U[2026-10-16 20:22:06Z], "I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "LgpqgWbzuiM", 1911, false, "https://www.youtube.com/watch?v=LgpqgWbzuiM", "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", false, 3, ~U[2024-06-13 14:00:14Z]] 22:22:06.497 [debug] QUERY OK source="sources" db=0.2ms idle=44.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:06.498 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:06.498 [debug] QUERY OK source="media_items" db=0.5ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [230] 22:22:06.499 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 1808, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", "id" => "tPMYODqzWfI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tPMYODqzWfI", "playlist_index" => 7, "timestamp" => 1718892044, "title" => "Vores heste stikker af | Livet på gården Ep. 7", "upload_date" => "20240620"} 22:22:06.499 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:06.500 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:06.500 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-20 14:00:44Z], 3] 22:22:06.516 [debug] QUERY OK source="media_items" db=14.9ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vores heste stikker af | Livet på gården Ep. 7", "411d98ae-16ae-4f18-926d-3da7da83ac48", "tPMYODqzWfI", false, 1808, false, "https://www.youtube.com/watch?v=tPMYODqzWfI", 7, "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", false, false, 3, [], 1, ~U[2024-06-20 14:00:44Z], ~U[2026-10-16 20:22:06Z], ~U[2026-10-16 20:22:06Z], "I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vores heste stikker af | Livet på gården Ep. 7", "tPMYODqzWfI", 1808, false, "https://www.youtube.com/watch?v=tPMYODqzWfI", "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", false, 3, ~U[2024-06-20 14:00:44Z]] 22:22:06.517 [debug] QUERY OK source="sources" db=0.4ms idle=17.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:06.517 [debug] QUERY OK source="media_profiles" db=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] 22:22:06.518 [debug] QUERY OK source="media_items" db=0.3ms idle=17.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [231] 22:22:06.518 [debug] Current batch of media processed. Will check again in 1000ms 22:22:07.519 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 2043, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", "id" => "5w4Zkb-V2fE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5w4Zkb-V2fE", "playlist_index" => 8, "timestamp" => 1719496803, "title" => "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "upload_date" => "20240627"} 22:22:07.520 [debug] QUERY OK source="sources" db=0.1ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:07.520 [debug] QUERY OK source="sources" db=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:07.521 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-27 14:00:03Z], 3] 22:22:07.524 [debug] QUERY OK source="media_items" db=2.6ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "559fb15e-9643-410a-8a3b-a531ea117322", "5w4Zkb-V2fE", false, 2043, false, "https://www.youtube.com/watch?v=5w4Zkb-V2fE", 8, "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", false, false, 3, [], 1, ~U[2024-06-27 14:00:03Z], ~U[2026-10-16 20:22:07Z], ~U[2026-10-16 20:22:07Z], "I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "5w4Zkb-V2fE", 2043, false, "https://www.youtube.com/watch?v=5w4Zkb-V2fE", "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", false, 3, ~U[2024-06-27 14:00:03Z]] 22:22:07.525 [debug] QUERY OK source="sources" db=0.2ms idle=70.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:07.525 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:07.526 [debug] QUERY OK source="media_items" db=0.3ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [232] 22:22:07.526 [debug] Current batch of media processed. Will check again in 1000ms 22:22:08.526 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 2059, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", "id" => "KotEK3OaF80", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KotEK3OaF80", "playlist_index" => 9, "timestamp" => 1720101614, "title" => "House tour | Livet på gården Ep. 9", "upload_date" => "20240704"} 22:22:08.527 [debug] QUERY OK source="sources" db=0.2ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:08.527 [debug] QUERY OK source="sources" db=0.1ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:08.528 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-04 14:00:14Z], 3] 22:22:08.529 [debug] QUERY OK source="media_items" db=0.6ms idle=1002.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "House tour | Livet på gården Ep. 9", "50f2c946-c60b-4187-af97-5853375c9fb8", "KotEK3OaF80", false, 2059, false, "https://www.youtube.com/watch?v=KotEK3OaF80", 9, "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", false, false, 3, [], 1, ~U[2024-07-04 14:00:14Z], ~U[2026-10-16 20:22:08Z], ~U[2026-10-16 20:22:08Z], "I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "House tour | Livet på gården Ep. 9", "KotEK3OaF80", 2059, false, "https://www.youtube.com/watch?v=KotEK3OaF80", "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", false, 3, ~U[2024-07-04 14:00:14Z]] 22:22:08.530 [debug] QUERY OK source="sources" db=0.1ms idle=74.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:08.530 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:08.531 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [233] 22:22:08.531 [debug] Current batch of media processed. Will check again in 1000ms 22:22:09.531 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1462, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", "id" => "ACbhu-bCkCs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ACbhu-bCkCs", "playlist_index" => 10, "timestamp" => 1721311209, "title" => "Måren har dræbt vores høns | Livet på gården Ep. 10", "upload_date" => "20240718"} 22:22:09.532 [debug] QUERY OK source="sources" db=0.2ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:09.532 [debug] QUERY OK source="sources" db=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:09.533 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-18 14:00:09Z], 3] 22:22:09.534 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Måren har dræbt vores høns | Livet på gården Ep. 10", "558a8dc9-368c-44dc-928a-282016b5b5d2", "ACbhu-bCkCs", false, 1462, false, "https://www.youtube.com/watch?v=ACbhu-bCkCs", 10, "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", false, false, 3, [], 1, ~U[2024-07-18 14:00:09Z], ~U[2026-10-16 20:22:09Z], ~U[2026-10-16 20:22:09Z], "I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Måren har dræbt vores høns | Livet på gården Ep. 10", "ACbhu-bCkCs", 1462, false, "https://www.youtube.com/watch?v=ACbhu-bCkCs", "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", false, 3, ~U[2024-07-18 14:00:09Z]] 22:22:09.535 [debug] QUERY OK source="sources" db=0.1ms idle=78.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:09.535 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:09.535 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [234] 22:22:09.536 [debug] Current batch of media processed. Will check again in 1000ms 22:22:10.536 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1666, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", "id" => "Sk2CUC0pUsw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Sk2CUC0pUsw", "playlist_index" => 11, "timestamp" => 1721916021, "title" => "Nye høns og havearbejde | Livet på gården Ep. 11", "upload_date" => "20240725"} 22:22:10.537 [debug] QUERY OK source="sources" db=0.2ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:10.537 [debug] QUERY OK source="sources" db=0.1ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:10.538 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-25 14:00:21Z], 3] 22:22:10.539 [debug] QUERY OK source="media_items" db=0.8ms idle=1002.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nye høns og havearbejde | Livet på gården Ep. 11", "80346542-6849-4eb2-ac5e-ea5c563d4c80", "Sk2CUC0pUsw", false, 1666, false, "https://www.youtube.com/watch?v=Sk2CUC0pUsw", 11, "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", false, false, 3, [], 1, ~U[2024-07-25 14:00:21Z], ~U[2026-10-16 20:22:10Z], ~U[2026-10-16 20:22:10Z], "I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nye høns og havearbejde | Livet på gården Ep. 11", "Sk2CUC0pUsw", 1666, false, "https://www.youtube.com/watch?v=Sk2CUC0pUsw", "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", false, 3, ~U[2024-07-25 14:00:21Z]] 22:22:10.540 [debug] QUERY OK source="sources" db=0.1ms idle=82.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:10.540 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:10.541 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [235] 22:22:10.541 [debug] Current batch of media processed. Will check again in 1000ms 22:22:11.542 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1747, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", "id" => "npE-BTzFMWc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=npE-BTzFMWc", "playlist_index" => 12, "timestamp" => 1722520842, "title" => "Heste og højbede | Livet på gården Ep. 12", "upload_date" => "20240801"} 22:22:11.543 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:11.543 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:11.544 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-01 14:00:42Z], 3] 22:22:11.545 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Heste og højbede | Livet på gården Ep. 12", "54370d13-be1b-4ccf-a85f-9136fc62e2cd", "npE-BTzFMWc", false, 1747, false, "https://www.youtube.com/watch?v=npE-BTzFMWc", 12, "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", false, false, 3, [], 1, ~U[2024-08-01 14:00:42Z], ~U[2026-10-16 20:22:11Z], ~U[2026-10-16 20:22:11Z], "I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Heste og højbede | Livet på gården Ep. 12", "npE-BTzFMWc", 1747, false, "https://www.youtube.com/watch?v=npE-BTzFMWc", "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", false, 3, ~U[2024-08-01 14:00:42Z]] 22:22:11.546 [debug] QUERY OK source="sources" db=0.1ms idle=87.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:11.546 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:11.547 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [236] 22:22:11.547 [debug] Current batch of media processed. Will check again in 1000ms 22:22:12.547 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1645, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", "id" => "mBkf-1EFsdE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mBkf-1EFsdE", "playlist_index" => 13, "timestamp" => 1723125644, "title" => "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "upload_date" => "20240808"} 22:22:12.548 [debug] QUERY OK source="sources" db=0.2ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:12.548 [debug] QUERY OK source="sources" db=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:12.549 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-08 14:00:44Z], 3] 22:22:12.550 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "7c359bfa-6df5-46f8-8c49-2c51860cf142", "mBkf-1EFsdE", false, 1645, false, "https://www.youtube.com/watch?v=mBkf-1EFsdE", 13, "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", false, false, 3, [], 1, ~U[2024-08-08 14:00:44Z], ~U[2026-10-16 20:22:12Z], ~U[2026-10-16 20:22:12Z], "I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "mBkf-1EFsdE", 1645, false, "https://www.youtube.com/watch?v=mBkf-1EFsdE", "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", false, 3, ~U[2024-08-08 14:00:44Z]] 22:22:12.551 [debug] QUERY OK source="sources" db=0.1ms idle=91.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:12.551 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:12.552 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [237] 22:22:12.552 [debug] Current batch of media processed. Will check again in 1000ms 22:22:13.552 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1651, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", "id" => "EKIo-bTmT5I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=EKIo-bTmT5I", "playlist_index" => 14, "timestamp" => 1723730416, "title" => "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "upload_date" => "20240815"} 22:22:13.553 [debug] QUERY OK source="sources" db=0.2ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:13.553 [debug] QUERY OK source="sources" db=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:13.554 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-15 14:00:16Z], 3] 22:22:13.556 [debug] QUERY OK source="media_items" db=1.2ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "7037d9d5-ec8f-4c9c-8bda-c4d90d8a4fc1", "EKIo-bTmT5I", false, 1651, false, "https://www.youtube.com/watch?v=EKIo-bTmT5I", 14, "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", false, false, 3, [], 1, ~U[2024-08-15 14:00:16Z], ~U[2026-10-16 20:22:13Z], ~U[2026-10-16 20:22:13Z], "I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "EKIo-bTmT5I", 1651, false, "https://www.youtube.com/watch?v=EKIo-bTmT5I", "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", false, 3, ~U[2024-08-15 14:00:16Z]] 22:22:13.556 [debug] QUERY OK source="sources" db=0.3ms idle=96.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:13.557 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:13.558 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [238] 22:22:13.558 [debug] Current batch of media processed. Will check again in 1000ms 22:22:14.558 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1505, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", "id" => "tVgdZ9ycitU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tVgdZ9ycitU", "playlist_index" => 15, "timestamp" => 1724335253, "title" => "Diagnose og dræbersnegle | Livet på gården Ep. 15", "upload_date" => "20240822"} 22:22:14.559 [debug] QUERY OK source="sources" db=0.3ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:14.560 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:14.560 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-22 14:00:53Z], 3] 22:22:14.562 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Diagnose og dræbersnegle | Livet på gården Ep. 15", "6004e820-47a4-4f09-a309-fb148decbd3f", "tVgdZ9ycitU", false, 1505, false, "https://www.youtube.com/watch?v=tVgdZ9ycitU", 15, "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", false, false, 3, [], 1, ~U[2024-08-22 14:00:53Z], ~U[2026-10-16 20:22:14Z], ~U[2026-10-16 20:22:14Z], "I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Diagnose og dræbersnegle | Livet på gården Ep. 15", "tVgdZ9ycitU", 1505, false, "https://www.youtube.com/watch?v=tVgdZ9ycitU", "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", false, 3, ~U[2024-08-22 14:00:53Z]] 22:22:14.562 [debug] QUERY OK source="sources" db=0.2ms idle=101.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:14.563 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:14.564 [debug] QUERY OK source="media_items" db=0.3ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [239] 22:22:14.564 [debug] Current batch of media processed. Will check again in 1000ms 22:22:15.564 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1871, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", "id" => "X-mJfUiB8oE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=X-mJfUiB8oE", "playlist_index" => 16, "timestamp" => 1724940026, "title" => "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "upload_date" => "20240829"} 22:22:15.565 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:15.566 [debug] QUERY OK source="sources" db=0.4ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:15.567 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-29 14:00:26Z], 3] 22:22:15.568 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "c0663f21-9b1e-4121-8ee8-b56b0dd6c079", "X-mJfUiB8oE", false, 1871, false, "https://www.youtube.com/watch?v=X-mJfUiB8oE", 16, "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", false, false, 3, [], 1, ~U[2024-08-29 14:00:26Z], ~U[2026-10-16 20:22:15Z], ~U[2026-10-16 20:22:15Z], "I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "X-mJfUiB8oE", 1871, false, "https://www.youtube.com/watch?v=X-mJfUiB8oE", "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", false, 3, ~U[2024-08-29 14:00:26Z]] 22:22:15.569 [debug] QUERY OK source="sources" db=0.5ms idle=106.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:15.570 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:15.571 [debug] QUERY OK source="media_items" db=0.4ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [240] 22:22:15.571 [debug] Current batch of media processed. Will check again in 1000ms 22:22:16.571 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1643, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", "id" => "ACPmnpI3fvU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ACPmnpI3fvU", "playlist_index" => 17, "timestamp" => 1726754408, "title" => "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "upload_date" => "20240919"} 22:22:16.572 [debug] QUERY OK source="sources" db=0.3ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:16.573 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:16.573 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-19 14:00:08Z], 3] 22:22:16.575 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "458a9d13-09fb-4a7c-b0c5-6d47bd21dad5", "ACPmnpI3fvU", false, 1643, false, "https://www.youtube.com/watch?v=ACPmnpI3fvU", 17, "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", false, false, 3, [], 1, ~U[2024-09-19 14:00:08Z], ~U[2026-10-16 20:22:16Z], ~U[2026-10-16 20:22:16Z], "I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "ACPmnpI3fvU", 1643, false, "https://www.youtube.com/watch?v=ACPmnpI3fvU", "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", false, 3, ~U[2024-09-19 14:00:08Z]] 22:22:16.575 [debug] QUERY OK source="sources" db=0.2ms idle=112.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:16.576 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:16.576 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [241] 22:22:16.577 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "duration" => 1387, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", "id" => "yzoiqawrf90", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yzoiqawrf90", "playlist_index" => 18, "timestamp" => 1726149663, "title" => "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "upload_date" => "20240912"} 22:22:16.577 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:16.578 [debug] QUERY OK source="sources" db=0.4ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:16.579 [debug] QUERY OK source="media_items" db=0.6ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-12 14:01:03Z], 3] 22:22:16.581 [debug] QUERY OK source="media_items" db=1.0ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "03ba38bb-dd61-4467-96e8-9bdee830e1f8", "yzoiqawrf90", false, 1387, false, "https://www.youtube.com/watch?v=yzoiqawrf90", 18, "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", false, false, 3, [], 1, ~U[2024-09-12 14:01:03Z], ~U[2026-10-16 20:22:16Z], ~U[2026-10-16 20:22:16Z], "Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "yzoiqawrf90", 1387, false, "https://www.youtube.com/watch?v=yzoiqawrf90", "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", false, 3, ~U[2024-09-12 14:01:03Z]] 22:22:16.581 [debug] QUERY OK source="sources" db=0.1ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:16.582 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:16.582 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [242] 22:22:16.582 [debug] Current batch of media processed. Will check again in 1000ms 22:22:17.583 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1742, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", "id" => "UlJfAh2C0fE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UlJfAh2C0fE", "playlist_index" => 19, "timestamp" => 1727964034, "title" => "En hel dag på dyreinternat | Livet på gården Ep. 21", "upload_date" => "20241003"} 22:22:17.584 [debug] QUERY OK source="sources" db=0.3ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:17.585 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:17.585 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-03 14:00:34Z], 3] 22:22:17.587 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En hel dag på dyreinternat | Livet på gården Ep. 21", "52f7596a-f68f-4d15-89ce-583463a6af4e", "UlJfAh2C0fE", false, 1742, false, "https://www.youtube.com/watch?v=UlJfAh2C0fE", 19, "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", false, false, 3, [], 1, ~U[2024-10-03 14:00:34Z], ~U[2026-10-16 20:22:17Z], ~U[2026-10-16 20:22:17Z], "I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En hel dag på dyreinternat | Livet på gården Ep. 21", "UlJfAh2C0fE", 1742, false, "https://www.youtube.com/watch?v=UlJfAh2C0fE", "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", false, 3, ~U[2024-10-03 14:00:34Z]] 22:22:17.587 [debug] QUERY OK source="sources" db=0.2ms idle=122.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:17.587 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:17.588 [debug] QUERY OK source="media_items" db=0.3ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [243] 22:22:17.588 [debug] Current batch of media processed. Will check again in 1000ms 22:22:18.589 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1514, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", "id" => "5fUjlgO0xVU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5fUjlgO0xVU", "playlist_index" => 20, "timestamp" => 1728568809, "title" => "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "upload_date" => "20241010"} 22:22:18.590 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:18.590 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:18.591 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-10 14:00:09Z], 3] 22:22:18.592 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "2d6c7bbc-317c-41b3-b72f-7ac9cc1941c6", "5fUjlgO0xVU", false, 1514, false, "https://www.youtube.com/watch?v=5fUjlgO0xVU", 20, "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", false, false, 3, [], 1, ~U[2024-10-10 14:00:09Z], ~U[2026-10-16 20:22:18Z], ~U[2026-10-16 20:22:18Z], "I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "5fUjlgO0xVU", 1514, false, "https://www.youtube.com/watch?v=5fUjlgO0xVU", "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", false, 3, ~U[2024-10-10 14:00:09Z]] 22:22:18.593 [debug] QUERY OK source="sources" db=0.1ms idle=126.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:18.593 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:18.594 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [244] 22:22:18.594 [debug] Current batch of media processed. Will check again in 1000ms 22:22:19.594 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1892, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", "id" => "1FSZw5q8Zaw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1FSZw5q8Zaw", "playlist_index" => 21, "timestamp" => 1729173604, "title" => "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "upload_date" => "20241017"} 22:22:19.595 [debug] QUERY OK source="sources" db=0.2ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:19.595 [debug] QUERY OK source="sources" db=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:19.596 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-17 14:00:04Z], 3] 22:22:19.597 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "5838d5ee-751c-416f-aa1c-bbde90995e4c", "1FSZw5q8Zaw", false, 1892, false, "https://www.youtube.com/watch?v=1FSZw5q8Zaw", 21, "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", false, false, 3, [], 1, ~U[2024-10-17 14:00:04Z], ~U[2026-10-16 20:22:19Z], ~U[2026-10-16 20:22:19Z], "I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "1FSZw5q8Zaw", 1892, false, "https://www.youtube.com/watch?v=1FSZw5q8Zaw", "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", false, 3, ~U[2024-10-17 14:00:04Z]] 22:22:19.598 [debug] QUERY OK source="sources" db=0.1ms idle=130.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:19.598 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:19.598 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [245] 22:22:19.599 [debug] Current batch of media processed. Will check again in 1000ms 22:22:20.599 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 2101, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", "id" => "6vrGogQTGw8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6vrGogQTGw8", "playlist_index" => 22, "timestamp" => 1729778405, "title" => "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "upload_date" => "20241024"} 22:22:20.600 [debug] QUERY OK source="sources" db=0.2ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:20.600 [debug] QUERY OK source="sources" db=0.1ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:20.601 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-24 14:00:05Z], 3] 22:22:20.602 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "1f8e0cb7-fda9-4a7a-8f41-b7866c78fb0f", "6vrGogQTGw8", false, 2101, false, "https://www.youtube.com/watch?v=6vrGogQTGw8", 22, "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", false, false, 3, [], 1, ~U[2024-10-24 14:00:05Z], ~U[2026-10-16 20:22:20Z], ~U[2026-10-16 20:22:20Z], "I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "6vrGogQTGw8", 2101, false, "https://www.youtube.com/watch?v=6vrGogQTGw8", "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", false, 3, ~U[2024-10-24 14:00:05Z]] 22:22:20.603 [debug] QUERY OK source="sources" db=0.1ms idle=134.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:20.603 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:20.604 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [246] 22:22:20.604 [debug] Current batch of media processed. Will check again in 1000ms 22:22:21.604 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1195, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", "id" => "fszG4EUNQSw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fszG4EUNQSw", "playlist_index" => 23, "timestamp" => 1729954642, "title" => "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "upload_date" => "20241026"} 22:22:21.605 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:21.605 [debug] QUERY OK source="sources" db=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:21.606 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-26 14:57:22Z], 3] 22:22:21.609 [debug] QUERY OK source="media_items" db=1.8ms idle=1002.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "0c5eb7b4-2d85-4f57-8d93-24ef54877e0e", "fszG4EUNQSw", false, 1195, false, "https://www.youtube.com/watch?v=fszG4EUNQSw", 23, "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", false, false, 3, [], 1, ~U[2024-10-26 14:57:22Z], ~U[2026-10-16 20:22:21Z], ~U[2026-10-16 20:22:21Z], "Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "fszG4EUNQSw", 1195, false, "https://www.youtube.com/watch?v=fszG4EUNQSw", "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", false, 3, ~U[2024-10-26 14:57:22Z]] 22:22:21.609 [debug] QUERY OK source="sources" db=0.2ms idle=138.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:21.610 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:21.610 [debug] QUERY OK source="media_items" db=0.4ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [247] 22:22:21.611 [debug] Current batch of media processed. Will check again in 1000ms 22:22:22.611 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 845, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", "id" => "knLNbZN-U8I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=knLNbZN-U8I", "playlist_index" => 24, "timestamp" => 1730386862, "title" => "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "upload_date" => "20241031"} 22:22:22.612 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:22.613 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:22.613 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-31 15:01:02Z], 3] 22:22:22.614 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "96e0ecfa-6e04-49c8-ad39-b563f984257e", "knLNbZN-U8I", false, 845, false, "https://www.youtube.com/watch?v=knLNbZN-U8I", 24, "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", false, false, 3, [], 1, ~U[2024-10-31 15:01:02Z], ~U[2026-10-16 20:22:22Z], ~U[2026-10-16 20:22:22Z], "I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "knLNbZN-U8I", 845, false, "https://www.youtube.com/watch?v=knLNbZN-U8I", "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", false, 3, ~U[2024-10-31 15:01:02Z]] 22:22:22.615 [debug] QUERY OK source="sources" db=0.1ms idle=143.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:22.615 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:22.616 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [248] 22:22:22.616 [debug] Current batch of media processed. Will check again in 1000ms 22:22:23.617 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1621, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", "id" => "JyiMi5ofXPw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JyiMi5ofXPw", "playlist_index" => 25, "timestamp" => 1730991619, "title" => "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "upload_date" => "20241107"} 22:22:23.618 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:23.618 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:23.619 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-07 15:00:19Z], 3] 22:22:23.620 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "c3fd7cae-b6f2-4bbe-93e5-b4250101901a", "JyiMi5ofXPw", false, 1621, false, "https://www.youtube.com/watch?v=JyiMi5ofXPw", 25, "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", false, false, 3, [], 1, ~U[2024-11-07 15:00:19Z], ~U[2026-10-16 20:22:23Z], ~U[2026-10-16 20:22:23Z], "I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "JyiMi5ofXPw", 1621, false, "https://www.youtube.com/watch?v=JyiMi5ofXPw", "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", false, 3, ~U[2024-11-07 15:00:19Z]] 22:22:23.621 [debug] QUERY OK source="sources" db=0.1ms idle=148.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:23.621 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:23.622 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [249] 22:22:23.622 [debug] Current batch of media processed. Will check again in 1000ms 22:22:24.622 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1506, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", "id" => "jEs2qt9f4cQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jEs2qt9f4cQ", "playlist_index" => 26, "timestamp" => 1731596451, "title" => "Døde grise og kæmpe krise | Livet på gården Ep. 28", "upload_date" => "20241114"} 22:22:24.623 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:24.624 [debug] QUERY OK source="sources" db=0.2ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:24.624 [debug] QUERY OK source="media_items" db=0.6ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-14 15:00:51Z], 3] 22:22:24.626 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Døde grise og kæmpe krise | Livet på gården Ep. 28", "d3f3ac79-7017-44fe-badd-a747abbb90bd", "jEs2qt9f4cQ", false, 1506, false, "https://www.youtube.com/watch?v=jEs2qt9f4cQ", 26, "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", false, false, 3, [], 1, ~U[2024-11-14 15:00:51Z], ~U[2026-10-16 20:22:24Z], ~U[2026-10-16 20:22:24Z], "I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Døde grise og kæmpe krise | Livet på gården Ep. 28", "jEs2qt9f4cQ", 1506, false, "https://www.youtube.com/watch?v=jEs2qt9f4cQ", "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", false, 3, ~U[2024-11-14 15:00:51Z]] 22:22:24.627 [debug] QUERY OK source="sources" db=0.3ms idle=153.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:24.627 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:24.628 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [250] 22:22:24.628 [debug] Current batch of media processed. Will check again in 1000ms 22:22:25.629 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1529, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", "id" => "RfFqKyedfAE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RfFqKyedfAE", "playlist_index" => 27, "timestamp" => 1732201226, "title" => "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "upload_date" => "20241121"} 22:22:25.630 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:25.630 [debug] QUERY OK source="sources" db=0.1ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:25.631 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-21 15:00:26Z], 3] 22:22:25.632 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "6b528ef7-6cea-465c-8de3-57b41b25ebc9", "RfFqKyedfAE", false, 1529, false, "https://www.youtube.com/watch?v=RfFqKyedfAE", 27, "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", false, false, 3, [], 1, ~U[2024-11-21 15:00:26Z], ~U[2026-10-16 20:22:25Z], ~U[2026-10-16 20:22:25Z], "I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "RfFqKyedfAE", 1529, false, "https://www.youtube.com/watch?v=RfFqKyedfAE", "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", false, 3, ~U[2024-11-21 15:00:26Z]] 22:22:25.633 [debug] QUERY OK source="sources" db=0.2ms idle=158.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:25.633 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:25.634 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [251] 22:22:25.634 [debug] Current batch of media processed. Will check again in 1000ms 22:22:26.634 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1708, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", "id" => "X73rI43iuD4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=X73rI43iuD4", "playlist_index" => 28, "timestamp" => 1732806036, "title" => "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "upload_date" => "20241128"} 22:22:26.635 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:26.635 [debug] QUERY OK source="sources" db=0.2ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:26.636 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-28 15:00:36Z], 3] 22:22:26.638 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "7cf73b2a-0814-4614-b953-0bea40ab3920", "X73rI43iuD4", false, 1708, false, "https://www.youtube.com/watch?v=X73rI43iuD4", 28, "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", false, false, 3, [], 1, ~U[2024-11-28 15:00:36Z], ~U[2026-10-16 20:22:26Z], ~U[2026-10-16 20:22:26Z], "I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "X73rI43iuD4", 1708, false, "https://www.youtube.com/watch?v=X73rI43iuD4", "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", false, 3, ~U[2024-11-28 15:00:36Z]] 22:22:26.638 [debug] QUERY OK source="sources" db=0.2ms idle=163.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:26.639 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:26.639 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [252] 22:22:26.640 [debug] Current batch of media processed. Will check again in 1000ms 22:22:27.640 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1586, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", "id" => "mdvG-5UJYRw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mdvG-5UJYRw", "playlist_index" => 29, "timestamp" => 1735830053, "title" => "Vores grise stikker af | Livet på gården Ep. 31", "upload_date" => "20250102"} 22:22:27.641 [debug] QUERY OK source="sources" db=0.2ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:27.641 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:27.642 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-02 15:00:53Z], 3] 22:22:27.643 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores grise stikker af | Livet på gården Ep. 31", "e1113199-adc8-4c2b-972b-5aec5250a17c", "mdvG-5UJYRw", false, 1586, false, "https://www.youtube.com/watch?v=mdvG-5UJYRw", 29, "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", false, false, 3, [], 1, ~U[2025-01-02 15:00:53Z], ~U[2026-10-16 20:22:27Z], ~U[2026-10-16 20:22:27Z], "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores grise stikker af | Livet på gården Ep. 31", "mdvG-5UJYRw", 1586, false, "https://www.youtube.com/watch?v=mdvG-5UJYRw", "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", false, 3, ~U[2025-01-02 15:00:53Z]] 22:22:27.644 [debug] QUERY OK source="sources" db=0.1ms idle=167.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:27.644 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:27.645 [debug] QUERY OK source="media_items" db=0.3ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [253] 22:22:27.645 [debug] Current batch of media processed. Will check again in 1000ms 22:22:28.646 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1189, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", "id" => "in68bPvRI18", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=in68bPvRI18", "playlist_index" => 30, "timestamp" => 1736434862, "title" => "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "upload_date" => "20250109"} 22:22:28.647 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:28.647 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:28.648 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-09 15:01:02Z], 3] 22:22:28.650 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "e052af58-e088-4a2a-b65c-807ff3bf2f5b", "in68bPvRI18", false, 1189, false, "https://www.youtube.com/watch?v=in68bPvRI18", 30, "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", false, false, 3, [], 1, ~U[2025-01-09 15:01:02Z], ~U[2026-10-16 20:22:28Z], ~U[2026-10-16 20:22:28Z], "I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "in68bPvRI18", 1189, false, "https://www.youtube.com/watch?v=in68bPvRI18", "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", false, 3, ~U[2025-01-09 15:01:02Z]] 22:22:28.651 [debug] QUERY OK source="sources" db=0.3ms idle=173.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:28.651 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:28.652 [debug] QUERY OK source="media_items" db=0.3ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [254] 22:22:28.652 [debug] Current batch of media processed. Will check again in 1000ms 22:22:29.311 [info] {"source":"oban","duration":800,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:22:29.654 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1320, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", "id" => "7eqGNG6x48o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7eqGNG6x48o", "playlist_index" => 31, "timestamp" => 1737039613, "title" => "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "upload_date" => "20250116"} 22:22:29.656 [debug] QUERY OK source="sources" db=1.2ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:29.658 [debug] QUERY OK source="sources" db=1.7ms idle=1004.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:29.660 [debug] QUERY OK source="media_items" db=2.2ms idle=1006.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-16 15:00:13Z], 3] 22:22:29.665 [debug] QUERY OK source="media_items" db=3.9ms idle=350.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "2ad8628a-627b-4c03-969d-45026ac10a57", "7eqGNG6x48o", false, 1320, false, "https://www.youtube.com/watch?v=7eqGNG6x48o", 31, "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", false, false, 3, [], 1, ~U[2025-01-16 15:00:13Z], ~U[2026-10-16 20:22:29Z], ~U[2026-10-16 20:22:29Z], "Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "7eqGNG6x48o", 1320, false, "https://www.youtube.com/watch?v=7eqGNG6x48o", "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", false, 3, ~U[2025-01-16 15:00:13Z]] 22:22:29.667 [debug] QUERY OK source="sources" db=1.7ms idle=183.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:29.669 [debug] QUERY OK source="media_profiles" db=1.0ms idle=11.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:29.671 [debug] QUERY OK source="media_items" db=1.6ms idle=11.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [255] 22:22:29.672 [debug] Current batch of media processed. Will check again in 1000ms 22:22:30.672 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1554, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", "id" => "DHmTZSb2QAg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DHmTZSb2QAg", "playlist_index" => 32, "timestamp" => 1737644414, "title" => "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "upload_date" => "20250123"} 22:22:30.673 [debug] QUERY OK source="sources" db=0.2ms idle=1007.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:30.673 [debug] QUERY OK source="sources" db=0.1ms idle=1005.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:30.674 [debug] QUERY OK source="media_items" db=0.4ms idle=1004.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-23 15:00:14Z], 3] 22:22:30.675 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "9dc97ccb-8656-4775-b47e-4ce48eac9826", "DHmTZSb2QAg", false, 1554, false, "https://www.youtube.com/watch?v=DHmTZSb2QAg", 32, "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", false, false, 3, [], 1, ~U[2025-01-23 15:00:14Z], ~U[2026-10-16 20:22:30Z], ~U[2026-10-16 20:22:30Z], "I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "DHmTZSb2QAg", 1554, false, "https://www.youtube.com/watch?v=DHmTZSb2QAg", "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", false, 3, ~U[2025-01-23 15:00:14Z]] 22:22:30.676 [debug] QUERY OK source="sources" db=0.2ms idle=192.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:30.676 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:30.677 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [287] 22:22:30.677 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1577, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", "id" => "06C0dkPjHIU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06C0dkPjHIU", "playlist_index" => 33, "timestamp" => 1738249201, "title" => "Ny grisestald og babyhaul | Livet på gården Ep. 35", "upload_date" => "20250130"} 22:22:30.678 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:30.678 [debug] QUERY OK source="sources" db=0.2ms idle=2.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:30.679 [debug] QUERY OK source="media_items" db=0.4ms idle=2.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-30 15:00:01Z], 3] 22:22:30.680 [debug] QUERY OK source="media_items" db=0.8ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny grisestald og babyhaul | Livet på gården Ep. 35", "b29af222-59cb-48d6-ba80-23e34703fe36", "06C0dkPjHIU", false, 1577, false, "https://www.youtube.com/watch?v=06C0dkPjHIU", 33, "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", false, false, 3, [], 1, ~U[2025-01-30 15:00:01Z], ~U[2026-10-16 20:22:30Z], ~U[2026-10-16 20:22:30Z], "I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny grisestald og babyhaul | Livet på gården Ep. 35", "06C0dkPjHIU", 1577, false, "https://www.youtube.com/watch?v=06C0dkPjHIU", "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", false, 3, ~U[2025-01-30 15:00:01Z]] 22:22:30.681 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:30.681 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:30.682 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [5894] 22:22:30.682 [debug] Current batch of media processed. Will check again in 1000ms 22:22:31.682 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1119, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", "id" => "5VIOEvQa6qs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5VIOEvQa6qs", "playlist_index" => 34, "timestamp" => 1738854015, "title" => "Pizzaaften og rottefangst | Livet på gården Ep. 36", "upload_date" => "20250206"} 22:22:31.683 [debug] QUERY OK source="sources" db=0.2ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:31.683 [debug] QUERY OK source="sources" db=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:31.684 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-06 15:00:15Z], 3] 22:22:31.685 [debug] QUERY OK source="media_items" db=0.8ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Pizzaaften og rottefangst | Livet på gården Ep. 36", "7c070754-c441-4480-8a3a-6eb0ea0a3336", "5VIOEvQa6qs", false, 1119, false, "https://www.youtube.com/watch?v=5VIOEvQa6qs", 34, "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", false, false, 3, [], 1, ~U[2025-02-06 15:00:15Z], ~U[2026-10-16 20:22:31Z], ~U[2026-10-16 20:22:31Z], "I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Pizzaaften og rottefangst | Livet på gården Ep. 36", "5VIOEvQa6qs", 1119, false, "https://www.youtube.com/watch?v=5VIOEvQa6qs", "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", false, 3, ~U[2025-02-06 15:00:15Z]] 22:22:31.686 [debug] QUERY OK source="sources" db=0.4ms idle=200.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:31.686 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:31.687 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [7183] 22:22:31.687 [debug] Current batch of media processed. Will check again in 1000ms 22:22:32.688 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 964, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", "id" => "C4VNr3_SRjc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=C4VNr3_SRjc", "playlist_index" => 35, "timestamp" => 1739458815, "title" => "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "upload_date" => "20250213"} 22:22:32.689 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:32.689 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:32.690 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-13 15:00:15Z], 3] 22:22:32.692 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "83185471-b590-475e-b2cd-bfdefe1af12b", "C4VNr3_SRjc", false, 964, false, "https://www.youtube.com/watch?v=C4VNr3_SRjc", 35, "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", false, false, 3, [], 1, ~U[2025-02-13 15:00:15Z], ~U[2026-10-16 20:22:32Z], ~U[2026-10-16 20:22:32Z], "Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "C4VNr3_SRjc", 964, false, "https://www.youtube.com/watch?v=C4VNr3_SRjc", "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", false, 3, ~U[2025-02-13 15:00:15Z]] 22:22:32.692 [debug] QUERY OK source="sources" db=0.1ms idle=205.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:32.692 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:32.693 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [8385] 22:22:32.693 [debug] Current batch of media processed. Will check again in 1000ms 22:22:33.694 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1364, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", "id" => "y7cv58JT-FI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=y7cv58JT-FI", "playlist_index" => 36, "timestamp" => 1740063685, "title" => "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "upload_date" => "20250220"} 22:22:33.695 [debug] QUERY OK source="sources" db=0.3ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:33.695 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:33.696 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-20 15:01:25Z], 3] 22:22:33.697 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "e7e43400-660d-48c7-b0a9-51a62f099caf", "y7cv58JT-FI", false, 1364, false, "https://www.youtube.com/watch?v=y7cv58JT-FI", 36, "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", false, false, 3, [], 1, ~U[2025-02-20 15:01:25Z], ~U[2026-10-16 20:22:33Z], ~U[2026-10-16 20:22:33Z], "I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "y7cv58JT-FI", 1364, false, "https://www.youtube.com/watch?v=y7cv58JT-FI", "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", false, 3, ~U[2025-02-20 15:01:25Z]] 22:22:33.698 [debug] QUERY OK source="sources" db=0.2ms idle=210.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:33.698 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:33.699 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [9710] 22:22:33.699 [debug] Current batch of media processed. Will check again in 1000ms 22:22:34.699 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1194, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", "id" => "lZWB5QR4wPQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lZWB5QR4wPQ", "playlist_index" => 37, "timestamp" => 1741273266, "title" => "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "upload_date" => "20250306"} 22:22:34.700 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:34.700 [debug] QUERY OK source="sources" db=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:34.701 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-06 15:01:06Z], 3] 22:22:34.703 [debug] QUERY OK source="media_items" db=0.8ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "9a66b633-b93e-4739-9f9f-77994bcf80a9", "lZWB5QR4wPQ", false, 1194, false, "https://www.youtube.com/watch?v=lZWB5QR4wPQ", 37, "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", false, false, 3, [], 1, ~U[2025-03-06 15:01:06Z], ~U[2026-10-16 20:22:34Z], ~U[2026-10-16 20:22:34Z], "I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "lZWB5QR4wPQ", 1194, false, "https://www.youtube.com/watch?v=lZWB5QR4wPQ", "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", false, 3, ~U[2025-03-06 15:01:06Z]] 22:22:34.703 [debug] QUERY OK source="sources" db=0.1ms idle=214.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:34.703 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:34.704 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [13149] 22:22:34.704 [debug] Current batch of media processed. Will check again in 1000ms 22:22:35.705 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1167, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", "id" => "Ok2_GV07ZBQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", "playlist_index" => 38, "timestamp" => 1741878023, "title" => "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "upload_date" => "20250313"} 22:22:35.706 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:35.706 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:35.707 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-13 15:00:23Z], 3] 22:22:35.708 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "d4fff820-669a-4f60-af43-6611e5988b78", "Ok2_GV07ZBQ", false, 1167, false, "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", 38, "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", false, false, 3, [], 1, ~U[2025-03-13 15:00:23Z], ~U[2026-10-16 20:22:35Z], ~U[2026-10-16 20:22:35Z], "I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "Ok2_GV07ZBQ", 1167, false, "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", false, 3, ~U[2025-03-13 15:00:23Z]] 22:22:35.709 [debug] QUERY OK source="sources" db=0.1ms idle=219.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:35.709 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:35.710 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [15018] 22:22:35.710 [debug] Current batch of media processed. Will check again in 1000ms 22:22:36.711 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1161, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", "id" => "_dr97qz8fXE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_dr97qz8fXE", "playlist_index" => 39, "timestamp" => 1746712848, "title" => "En baby og nesting mode | Livet på gården Ep. 41", "upload_date" => "20250508"} 22:22:36.712 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:36.712 [debug] QUERY OK source="sources" db=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:36.713 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-08 14:00:48Z], 3] 22:22:36.716 [debug] QUERY OK source="media_items" db=2.2ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En baby og nesting mode | Livet på gården Ep. 41", "a56e5ac1-2d8c-4550-b677-9b021a10f1a0", "_dr97qz8fXE", false, 1161, false, "https://www.youtube.com/watch?v=_dr97qz8fXE", 39, "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", false, false, 3, [], 1, ~U[2025-05-08 14:00:48Z], ~U[2026-10-16 20:22:36Z], ~U[2026-10-16 20:22:36Z], "Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En baby og nesting mode | Livet på gården Ep. 41", "_dr97qz8fXE", 1161, false, "https://www.youtube.com/watch?v=_dr97qz8fXE", "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", false, 3, ~U[2025-05-08 14:00:48Z]] 22:22:36.716 [debug] QUERY OK source="sources" db=0.1ms idle=226.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:36.717 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:36.717 [debug] QUERY OK source="media_items" db=0.2ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [31596] 22:22:36.717 [debug] Current batch of media processed. Will check again in 1000ms 22:22:37.718 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1565, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", "id" => "XyfY9KQlii8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XyfY9KQlii8", "playlist_index" => 40, "timestamp" => 1747317649, "title" => "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "upload_date" => "20250515"} 22:22:37.719 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:37.719 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:37.720 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-15 14:00:49Z], 3] 22:22:37.721 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "b497ae69-aad1-47cd-9a46-fca909263133", "XyfY9KQlii8", false, 1565, false, "https://www.youtube.com/watch?v=XyfY9KQlii8", 40, "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", false, false, 3, [], 1, ~U[2025-05-15 14:00:49Z], ~U[2026-10-16 20:22:37Z], ~U[2026-10-16 20:22:37Z], "I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "XyfY9KQlii8", 1565, false, "https://www.youtube.com/watch?v=XyfY9KQlii8", "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", false, 3, ~U[2025-05-15 14:00:49Z]] 22:22:37.722 [debug] QUERY OK source="sources" db=0.1ms idle=230.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:37.722 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:37.723 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [33551] 22:22:37.723 [debug] Current batch of media processed. Will check again in 1000ms 22:22:38.723 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1220, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", "id" => "4lsBpblT134", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4lsBpblT134", "playlist_index" => 41, "timestamp" => 1747922414, "title" => "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "upload_date" => "20250522"} 22:22:38.724 [debug] QUERY OK source="sources" db=0.3ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:38.724 [debug] QUERY OK source="sources" db=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:38.725 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-22 14:00:14Z], 3] 22:22:38.727 [debug] QUERY OK source="media_items" db=0.8ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "2d4fe11d-9948-49ce-962c-e8c1821e4e12", "4lsBpblT134", false, 1220, false, "https://www.youtube.com/watch?v=4lsBpblT134", 41, "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", false, false, 3, [], 1, ~U[2025-05-22 14:00:14Z], ~U[2026-10-16 20:22:38Z], ~U[2026-10-16 20:22:38Z], "I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "4lsBpblT134", 1220, false, "https://www.youtube.com/watch?v=4lsBpblT134", "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", false, 3, ~U[2025-05-22 14:00:14Z]] 22:22:38.727 [debug] QUERY OK source="sources" db=0.2ms idle=234.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:38.727 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:38.728 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [35686] 22:22:38.728 [debug] Current batch of media processed. Will check again in 1000ms 22:22:39.729 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1273, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", "id" => "LwViuowDYFk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LwViuowDYFk", "playlist_index" => 42, "timestamp" => 1748527235, "title" => "Højgravid og et hus uden tag | Livet på gården Ep. 44", "upload_date" => "20250529"} 22:22:39.730 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:39.731 [debug] QUERY OK source="sources" db=0.5ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:39.732 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-29 14:00:35Z], 3] 22:22:39.733 [debug] QUERY OK source="media_items" db=1.1ms idle=1004.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Højgravid og et hus uden tag | Livet på gården Ep. 44", "da969da1-59b9-4281-add2-fbe0d1757f8d", "LwViuowDYFk", false, 1273, false, "https://www.youtube.com/watch?v=LwViuowDYFk", 42, "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", false, false, 3, [], 1, ~U[2025-05-29 14:00:35Z], ~U[2026-10-16 20:22:39Z], ~U[2026-10-16 20:22:39Z], "I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Højgravid og et hus uden tag | Livet på gården Ep. 44", "LwViuowDYFk", 1273, false, "https://www.youtube.com/watch?v=LwViuowDYFk", "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", false, 3, ~U[2025-05-29 14:00:35Z]] 22:22:39.734 [debug] QUERY OK source="sources" db=0.2ms idle=240.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:39.734 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:39.735 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [37791] 22:22:39.735 [debug] Current batch of media processed. Will check again in 1000ms 22:22:40.736 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1394, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", "id" => "QVFwXhDMin4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QVFwXhDMin4", "playlist_index" => 43, "timestamp" => 1749132041, "title" => "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "upload_date" => "20250605"} 22:22:40.737 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:40.737 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:40.738 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-05 14:00:41Z], 3] 22:22:40.740 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "ce645bb2-e409-408f-850b-77270d92b74f", "QVFwXhDMin4", false, 1394, false, "https://www.youtube.com/watch?v=QVFwXhDMin4", 43, "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", false, false, 3, [], 1, ~U[2025-06-05 14:00:41Z], ~U[2026-10-16 20:22:40Z], ~U[2026-10-16 20:22:40Z], "I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "QVFwXhDMin4", 1394, false, "https://www.youtube.com/watch?v=QVFwXhDMin4", "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", false, 3, ~U[2025-06-05 14:00:41Z]] 22:22:40.741 [debug] QUERY OK source="sources" db=0.5ms idle=246.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:40.742 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 22:22:40.743 [debug] QUERY OK source="media_items" db=0.5ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [39841] 22:22:40.743 [debug] Current batch of media processed. Will check again in 1000ms 22:22:41.743 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1290, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", "id" => "-rvS4KsyD-8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-rvS4KsyD-8", "playlist_index" => 44, "timestamp" => 1749736800, "title" => "Når 2 bliver til 3 | Livet på gården Ep. 46", "upload_date" => "20250612"} 22:22:41.744 [debug] QUERY OK source="sources" db=0.2ms idle=1003.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:41.745 [debug] QUERY OK source="sources" db=0.3ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:41.746 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-12 14:00:00Z], 3] 22:22:41.747 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Når 2 bliver til 3 | Livet på gården Ep. 46", "511c380f-5c24-42ea-9493-8303b7ada1ee", "-rvS4KsyD-8", false, 1290, false, "https://www.youtube.com/watch?v=-rvS4KsyD-8", 44, "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", false, false, 3, [], 1, ~U[2025-06-12 14:00:00Z], ~U[2026-10-16 20:22:41Z], ~U[2026-10-16 20:22:41Z], "I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Når 2 bliver til 3 | Livet på gården Ep. 46", "-rvS4KsyD-8", 1290, false, "https://www.youtube.com/watch?v=-rvS4KsyD-8", "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", false, 3, ~U[2025-06-12 14:00:00Z]] 22:22:41.748 [debug] QUERY OK source="sources" db=0.3ms idle=252.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:41.748 [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] 22:22:41.749 [debug] QUERY OK source="media_items" db=0.3ms idle=3.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [42004] 22:22:41.749 [debug] Current batch of media processed. Will check again in 1000ms 22:22:42.749 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1248, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", "id" => "L8u8ZcjpR6A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=L8u8ZcjpR6A", "playlist_index" => 45, "timestamp" => 1750341628, "title" => "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "upload_date" => "20250619"} 22:22:42.750 [debug] QUERY OK source="sources" db=0.2ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:42.750 [debug] QUERY OK source="sources" db=0.1ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:42.751 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-19 14:00:28Z], 3] 22:22:42.752 [debug] QUERY OK source="media_items" db=0.8ms idle=1002.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "dc0252cb-f7a3-4de8-9f6a-0e3ae240cada", "L8u8ZcjpR6A", false, 1248, false, "https://www.youtube.com/watch?v=L8u8ZcjpR6A", 45, "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", false, false, 3, [], 1, ~U[2025-06-19 14:00:28Z], ~U[2026-10-16 20:22:42Z], ~U[2026-10-16 20:22:42Z], "I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "L8u8ZcjpR6A", 1248, false, "https://www.youtube.com/watch?v=L8u8ZcjpR6A", "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", false, 3, ~U[2025-06-19 14:00:28Z]] 22:22:42.753 [debug] QUERY OK source="sources" db=0.2ms idle=256.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:42.753 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:42.754 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [44155] 22:22:42.754 [debug] Current batch of media processed. Will check again in 1000ms 22:22:43.755 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 885, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", "id" => "W_VQNTe2uV0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=W_VQNTe2uV0", "playlist_index" => 46, "timestamp" => 1750946446, "title" => "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "upload_date" => "20250626"} 22:22:43.756 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:43.756 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:43.757 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-26 14:00:46Z], 3] 22:22:43.759 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "7a9d0793-9704-4449-8555-e72f52f149cb", "W_VQNTe2uV0", false, 885, false, "https://www.youtube.com/watch?v=W_VQNTe2uV0", 46, "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", false, false, 3, [], 1, ~U[2025-06-26 14:00:46Z], ~U[2026-10-16 20:22:43Z], ~U[2026-10-16 20:22:43Z], "Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "W_VQNTe2uV0", 885, false, "https://www.youtube.com/watch?v=W_VQNTe2uV0", "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", false, 3, ~U[2025-06-26 14:00:46Z]] 22:22:43.759 [debug] QUERY OK source="sources" db=0.2ms idle=261.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:43.760 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:43.760 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [46349] 22:22:43.760 [debug] Current batch of media processed. Will check again in 1000ms 22:22:44.761 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1455, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", "id" => "LOW7BsM3muw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LOW7BsM3muw", "playlist_index" => 47, "timestamp" => 1751551238, "title" => "Tomater og byggemøde | Livet på gården Ep. 49", "upload_date" => "20250703"} 22:22:44.762 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:44.762 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:44.763 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-03 14:00:38Z], 3] 22:22:44.765 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tomater og byggemøde | Livet på gården Ep. 49", "b7158145-00fc-470b-82a0-f4fa6968ce6b", "LOW7BsM3muw", false, 1455, false, "https://www.youtube.com/watch?v=LOW7BsM3muw", 47, "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", false, false, 3, [], 1, ~U[2025-07-03 14:00:38Z], ~U[2026-10-16 20:22:44Z], ~U[2026-10-16 20:22:44Z], "I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tomater og byggemøde | Livet på gården Ep. 49", "LOW7BsM3muw", 1455, false, "https://www.youtube.com/watch?v=LOW7BsM3muw", "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", false, 3, ~U[2025-07-03 14:00:38Z]] 22:22:44.765 [debug] QUERY OK source="sources" db=0.2ms idle=266.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:44.765 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:44.766 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [48526] 22:22:44.766 [debug] Current batch of media processed. Will check again in 1000ms 22:22:45.767 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1048, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", "id" => "eRwqESemLz0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eRwqESemLz0", "playlist_index" => 48, "timestamp" => 1752156067, "title" => "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "upload_date" => "20250710"} 22:22:45.768 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:45.768 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:45.769 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-10 14:01:07Z], 3] 22:22:45.770 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "7f8bd03c-147e-43ae-bf4b-b82412aad2f7", "eRwqESemLz0", false, 1048, false, "https://www.youtube.com/watch?v=eRwqESemLz0", 48, "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", false, false, 3, [], 1, ~U[2025-07-10 14:01:07Z], ~U[2026-10-16 20:22:45Z], ~U[2026-10-16 20:22:45Z], "I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "eRwqESemLz0", 1048, false, "https://www.youtube.com/watch?v=eRwqESemLz0", "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", false, 3, ~U[2025-07-10 14:01:07Z]] 22:22:45.771 [debug] QUERY OK source="sources" db=0.1ms idle=271.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:45.771 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:45.772 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [50818] 22:22:45.772 [debug] Current batch of media processed. Will check again in 1000ms 22:22:46.773 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1223, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", "id" => "N_QTztIN_uE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N_QTztIN_uE", "playlist_index" => 49, "timestamp" => 1752760837, "title" => "Vores datter er med i haven | Livet på gården Ep. 51", "upload_date" => "20250717"} 22:22:46.775 [debug] QUERY OK source="sources" db=0.8ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:46.776 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=1004.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:46.778 [debug] QUERY OK source="media_items" db=1.3ms queue=0.3ms idle=1004.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-17 14:00:37Z], 3] 22:22:46.780 [debug] QUERY OK source="media_items" db=1.0ms idle=1006.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores datter er med i haven | Livet på gården Ep. 51", "74a1146a-7496-4044-b4f3-4fe86ee2e219", "N_QTztIN_uE", false, 1223, false, "https://www.youtube.com/watch?v=N_QTztIN_uE", 49, "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", false, false, 3, [], 1, ~U[2025-07-17 14:00:37Z], ~U[2026-10-16 20:22:46Z], ~U[2026-10-16 20:22:46Z], "I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores datter er med i haven | Livet på gården Ep. 51", "N_QTztIN_uE", 1223, false, "https://www.youtube.com/watch?v=N_QTztIN_uE", "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", false, 3, ~U[2025-07-17 14:00:37Z]] 22:22:46.781 [debug] QUERY OK source="sources" db=1.2ms idle=280.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:46.783 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.2ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:46.785 [debug] QUERY OK source="media_items" db=0.8ms idle=7.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [53152] 22:22:46.786 [debug] Current batch of media processed. Will check again in 1000ms 22:22:47.786 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1213, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", "id" => "8KBS6AxLEhs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8KBS6AxLEhs", "playlist_index" => 50, "timestamp" => 1755180017, "title" => "Nyt tag på 3 dage | Livet på gården Ep. 52", "upload_date" => "20250814"} 22:22:47.787 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1007.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:47.788 [debug] QUERY OK source="sources" db=0.5ms idle=1005.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:47.789 [debug] QUERY OK source="media_items" db=0.8ms idle=1005.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-14 14:00:17Z], 3] 22:22:47.791 [debug] QUERY OK source="media_items" db=1.6ms idle=1004.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nyt tag på 3 dage | Livet på gården Ep. 52", "0a19cd37-d124-469e-aff4-e34475aeab2e", "8KBS6AxLEhs", false, 1213, false, "https://www.youtube.com/watch?v=8KBS6AxLEhs", 50, "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", false, false, 3, [], 1, ~U[2025-08-14 14:00:17Z], ~U[2026-10-16 20:22:47Z], ~U[2026-10-16 20:22:47Z], "I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nyt tag på 3 dage | Livet på gården Ep. 52", "8KBS6AxLEhs", 1213, false, "https://www.youtube.com/watch?v=8KBS6AxLEhs", "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", false, 3, ~U[2025-08-14 14:00:17Z]] 22:22:47.792 [debug] QUERY OK source="sources" db=0.3ms idle=290.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:47.793 [debug] QUERY OK source="media_profiles" db=0.4ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:47.793 [debug] QUERY OK source="media_items" db=0.4ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [62172] 22:22:47.794 [debug] Current batch of media processed. Will check again in 1000ms 22:22:48.794 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1195, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", "id" => "xTCNmkJl7cs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xTCNmkJl7cs", "playlist_index" => 51, "timestamp" => 1755784885, "title" => "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "upload_date" => "20250821"} 22:22:48.795 [debug] QUERY OK source="sources" db=0.2ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:48.796 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:48.797 [debug] QUERY OK source="media_items" db=0.6ms queue=0.3ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-21 14:01:25Z], 3] 22:22:48.798 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "508b697b-cffe-4b32-84cd-4ecd933a679c", "xTCNmkJl7cs", false, 1195, false, "https://www.youtube.com/watch?v=xTCNmkJl7cs", 51, "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", false, false, 3, [], 1, ~U[2025-08-21 14:01:25Z], ~U[2026-10-16 20:22:48Z], ~U[2026-10-16 20:22:48Z], "I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "xTCNmkJl7cs", 1195, false, "https://www.youtube.com/watch?v=xTCNmkJl7cs", "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", false, 3, ~U[2025-08-21 14:01:25Z]] 22:22:48.799 [debug] QUERY OK source="sources" db=0.1ms idle=296.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:48.799 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:48.800 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [63986] 22:22:48.800 [debug] Current batch of media processed. Will check again in 1000ms 22:22:49.800 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1652, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", "id" => "U_w3PIAVp40", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=U_w3PIAVp40", "playlist_index" => 52, "timestamp" => 1756389646, "title" => "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "upload_date" => "20250828"} 22:22:49.801 [debug] QUERY OK source="sources" db=0.2ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:49.801 [debug] QUERY OK source="sources" db=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:49.802 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-28 14:00:46Z], 3] 22:22:49.804 [debug] QUERY OK source="media_items" db=0.8ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "875f0a27-fbca-45be-a442-c23db6f497c7", "U_w3PIAVp40", false, 1652, false, "https://www.youtube.com/watch?v=U_w3PIAVp40", 52, "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", false, false, 3, [], 1, ~U[2025-08-28 14:00:46Z], ~U[2026-10-16 20:22:49Z], ~U[2026-10-16 20:22:49Z], "Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "U_w3PIAVp40", 1652, false, "https://www.youtube.com/watch?v=U_w3PIAVp40", "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", false, 3, ~U[2025-08-28 14:00:46Z]] 22:22:49.804 [debug] QUERY OK source="sources" db=0.1ms idle=300.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:49.805 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:49.805 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [66408] 22:22:49.805 [debug] Current batch of media processed. Will check again in 1000ms 22:22:50.806 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1265, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", "id" => "oJHte_vjoV4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oJHte_vjoV4", "playlist_index" => 53, "timestamp" => 1754575283, "title" => "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "upload_date" => "20250807"} 22:22:50.807 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:50.807 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:50.808 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-07 14:01:23Z], 3] 22:22:50.810 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "a2ea9da7-f967-45da-ae11-6ce9f2e8db63", "oJHte_vjoV4", false, 1265, false, "https://www.youtube.com/watch?v=oJHte_vjoV4", 53, "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", false, false, 3, [], 1, ~U[2025-08-07 14:01:23Z], ~U[2026-10-16 20:22:50Z], ~U[2026-10-16 20:22:50Z], "Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "oJHte_vjoV4", 1265, false, "https://www.youtube.com/watch?v=oJHte_vjoV4", "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", false, 3, ~U[2025-08-07 14:01:23Z]] 22:22:50.810 [debug] QUERY OK source="sources" db=0.2ms idle=305.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:50.811 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:50.811 [debug] QUERY OK source="media_items" db=0.3ms idle=3.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [59883] 22:22:50.812 [debug] Current batch of media processed. Will check again in 1000ms 22:22:51.812 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1396, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", "id" => "gbe1EwOyOKY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gbe1EwOyOKY", "playlist_index" => 54, "timestamp" => 1756994468, "title" => "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "upload_date" => "20250904"} 22:22:51.814 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:51.816 [debug] QUERY OK source="sources" db=0.8ms queue=0.7ms idle=1004.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:51.819 [debug] QUERY OK source="media_items" db=1.9ms queue=0.4ms idle=1005.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-04 14:01:08Z], 3] 22:22:51.823 [debug] QUERY OK source="media_items" db=3.2ms idle=1008.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "54f3f933-a7ee-4f6e-9f86-47a74e5a4628", "gbe1EwOyOKY", false, 1396, false, "https://www.youtube.com/watch?v=gbe1EwOyOKY", 54, "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", false, false, 3, [], 1, ~U[2025-09-04 14:01:08Z], ~U[2026-10-16 20:22:51Z], ~U[2026-10-16 20:22:51Z], "I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "gbe1EwOyOKY", 1396, false, "https://www.youtube.com/watch?v=gbe1EwOyOKY", "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", false, 3, ~U[2025-09-04 14:01:08Z]] 22:22:51.824 [debug] QUERY OK source="sources" db=0.4ms idle=318.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:51.825 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=9.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:51.826 [debug] QUERY OK source="media_items" db=0.8ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [68913] 22:22:51.827 [debug] Current batch of media processed. Will check again in 1000ms 22:22:52.827 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1421, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", "id" => "aPr93nvV6Sc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aPr93nvV6Sc", "playlist_index" => 55, "timestamp" => 1757599202, "title" => "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "upload_date" => "20250911"} 22:22:52.828 [debug] QUERY OK source="sources" db=0.3ms idle=1004.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:52.829 [debug] QUERY OK source="sources" db=0.2ms idle=1004.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:52.830 [debug] QUERY OK source="media_items" db=0.5ms idle=1004.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 14:00:02Z], 3] 22:22:52.833 [debug] QUERY OK source="media_items" db=2.3ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "4934205c-94ff-4e20-ad1a-81236e4aca43", "aPr93nvV6Sc", false, 1421, false, "https://www.youtube.com/watch?v=aPr93nvV6Sc", 55, "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", false, false, 3, [], 1, ~U[2025-09-11 14:00:02Z], ~U[2026-10-16 20:22:52Z], ~U[2026-10-16 20:22:52Z], "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "aPr93nvV6Sc", 1421, false, "https://www.youtube.com/watch?v=aPr93nvV6Sc", "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", false, 3, ~U[2025-09-11 14:00:02Z]] 22:22:52.833 [debug] QUERY OK source="sources" db=0.3ms idle=326.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:52.834 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:52.835 [debug] QUERY OK source="media_items" db=0.3ms idle=5.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [71436] 22:22:52.835 [debug] Current batch of media processed. Will check again in 1000ms 22:22:53.835 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1020, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", "id" => "lLuYcnLpHk8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lLuYcnLpHk8", "playlist_index" => 56, "timestamp" => 1758204394, "title" => "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "upload_date" => "20250918"} 22:22:53.836 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:53.836 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:53.837 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-18 14:06:34Z], 3] 22:22:53.838 [debug] QUERY OK source="media_items" db=0.6ms idle=1002.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "1f5bc799-cf6e-4324-8046-e9fb56624061", "lLuYcnLpHk8", false, 1020, false, "https://www.youtube.com/watch?v=lLuYcnLpHk8", 56, "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", false, false, 3, [], 1, ~U[2025-09-18 14:06:34Z], ~U[2026-10-16 20:22:53Z], ~U[2026-10-16 20:22:53Z], "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "lLuYcnLpHk8", 1020, false, "https://www.youtube.com/watch?v=lLuYcnLpHk8", "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", false, 3, ~U[2025-09-18 14:06:34Z]] 22:22:53.839 [debug] QUERY OK source="sources" db=0.2ms idle=331.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:53.839 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:53.840 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [73945] 22:22:53.840 [debug] Current batch of media processed. Will check again in 1000ms 22:22:54.840 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1485, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", "id" => "rFwrB9Pe4hM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rFwrB9Pe4hM", "playlist_index" => 57, "timestamp" => 1758808893, "title" => "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "upload_date" => "20250925"} 22:22:54.841 [debug] QUERY OK source="sources" db=0.3ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:54.841 [debug] QUERY OK source="sources" db=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:54.842 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-25 14:01:33Z], 3] 22:22:54.844 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "a1413664-4245-405c-8940-3986028a013e", "rFwrB9Pe4hM", false, 1485, false, "https://www.youtube.com/watch?v=rFwrB9Pe4hM", 57, "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", false, false, 3, [], 1, ~U[2025-09-25 14:01:33Z], ~U[2026-10-16 20:22:54Z], ~U[2026-10-16 20:22:54Z], "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "rFwrB9Pe4hM", 1485, false, "https://www.youtube.com/watch?v=rFwrB9Pe4hM", "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", false, 3, ~U[2025-09-25 14:01:33Z]] 22:22:54.844 [debug] QUERY OK source="sources" db=0.1ms idle=336.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:54.845 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:54.845 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [76480] 22:22:54.845 [debug] Current batch of media processed. Will check again in 1000ms 22:22:55.846 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1641, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", "id" => "uEP1rtTb-XE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uEP1rtTb-XE", "playlist_index" => 58, "timestamp" => 1759413692, "title" => "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "upload_date" => "20251002"} 22:22:55.847 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:55.847 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:55.848 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 14:01:32Z], 3] 22:22:55.850 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "2a2ca126-201c-4b06-8b9b-55c489f42b0b", "uEP1rtTb-XE", false, 1641, false, "https://www.youtube.com/watch?v=uEP1rtTb-XE", 58, "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", false, false, 3, [], 1, ~U[2025-10-02 14:01:32Z], ~U[2026-10-16 20:22:55Z], ~U[2026-10-16 20:22:55Z], "I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "uEP1rtTb-XE", 1641, false, "https://www.youtube.com/watch?v=uEP1rtTb-XE", "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", false, 3, ~U[2025-10-02 14:01:32Z]] 22:22:55.850 [debug] QUERY OK source="sources" db=0.1ms idle=340.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:55.850 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:55.851 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [79073] 22:22:55.851 [debug] Current batch of media processed. Will check again in 1000ms 22:22:56.852 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1534, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", "id" => "mCkvhf9YDCk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mCkvhf9YDCk", "playlist_index" => 59, "timestamp" => 1760018475, "title" => "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "upload_date" => "20251009"} 22:22:56.853 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:56.854 [debug] QUERY OK source="sources" db=0.4ms queue=0.4ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:56.856 [debug] QUERY OK source="media_items" db=1.0ms queue=0.6ms idle=1003.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-09 14:01:15Z], 3] 22:22:56.863 [debug] QUERY OK source="media_items" db=4.1ms queue=0.2ms idle=1006.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "0bb4bd2d-cf10-4b12-b277-aa88c0ceacb8", "mCkvhf9YDCk", false, 1534, false, "https://www.youtube.com/watch?v=mCkvhf9YDCk", 59, "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", false, false, 3, [], 1, ~U[2025-10-09 14:01:15Z], ~U[2026-10-16 20:22:56Z], ~U[2026-10-16 20:22:56Z], "I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "mCkvhf9YDCk", 1534, false, "https://www.youtube.com/watch?v=mCkvhf9YDCk", "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", false, 3, ~U[2025-10-09 14:01:15Z]] 22:22:56.864 [debug] QUERY OK source="sources" db=0.5ms queue=0.3ms idle=353.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:56.866 [debug] QUERY OK source="media_profiles" db=1.8ms idle=11.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:56.867 [debug] QUERY OK source="media_items" db=0.5ms idle=12.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [81473] 22:22:56.867 [debug] Current batch of media processed. Will check again in 1000ms 22:22:57.868 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1491, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", "id" => "KMuFnD8X_To", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KMuFnD8X_To", "playlist_index" => 60, "timestamp" => 1760623235, "title" => "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "upload_date" => "20251016"} 22:22:57.869 [debug] QUERY OK source="sources" db=0.3ms idle=1006.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:57.870 [debug] QUERY OK source="sources" db=0.3ms idle=1005.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:57.871 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1003.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-16 14:00:35Z], 3] 22:22:57.872 [debug] QUERY OK source="media_items" db=0.9ms idle=1004.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "d72c1b2a-b049-42e1-b931-36648d1d0771", "KMuFnD8X_To", false, 1491, false, "https://www.youtube.com/watch?v=KMuFnD8X_To", 60, "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", false, false, 3, [], 1, ~U[2025-10-16 14:00:35Z], ~U[2026-10-16 20:22:57Z], ~U[2026-10-16 20:22:57Z], "I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "KMuFnD8X_To", 1491, false, "https://www.youtube.com/watch?v=KMuFnD8X_To", "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", false, 3, ~U[2025-10-16 14:00:35Z]] 22:22:57.873 [debug] QUERY OK source="sources" db=0.3ms idle=361.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:57.873 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:57.874 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [84158] 22:22:57.874 [debug] Current batch of media processed. Will check again in 1000ms 22:22:58.875 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1384, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", "id" => "aSbYAroNsjw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aSbYAroNsjw", "playlist_index" => 61, "timestamp" => 1761228002, "title" => "Vi bygger et gyngestativ | Livet på gården Ep. 62", "upload_date" => "20251023"} 22:22:58.876 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:58.877 [debug] QUERY OK source="sources" db=0.5ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:58.878 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 14:00:02Z], 3] 22:22:58.880 [debug] QUERY OK source="media_items" db=1.2ms idle=1004.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi bygger et gyngestativ | Livet på gården Ep. 62", "e1fddb3b-61c5-4aab-95a1-9a39ffa60169", "aSbYAroNsjw", false, 1384, false, "https://www.youtube.com/watch?v=aSbYAroNsjw", 61, "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", false, false, 3, [], 1, ~U[2025-10-23 14:00:02Z], ~U[2026-10-16 20:22:58Z], ~U[2026-10-16 20:22:58Z], "I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi bygger et gyngestativ | Livet på gården Ep. 62", "aSbYAroNsjw", 1384, false, "https://www.youtube.com/watch?v=aSbYAroNsjw", "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", false, 3, ~U[2025-10-23 14:00:02Z]] 22:22:58.880 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=366.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:58.880 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:58.881 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [86840] 22:22:58.881 [debug] Current batch of media processed. Will check again in 1000ms 22:22:59.313 [info] {"source":"oban","duration":765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:22:59.882 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1386, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", "id" => "_c08N8LDjq4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_c08N8LDjq4", "playlist_index" => 62, "timestamp" => 1761832855, "title" => "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "upload_date" => "20251030"} 22:22:59.883 [debug] QUERY OK source="sources" db=0.2ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:22:59.883 [debug] QUERY OK source="sources" db=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:59.885 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 14:00:55Z], 3] 22:22:59.887 [debug] QUERY OK source="media_items" db=1.3ms idle=572.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "38c29f0c-5ef0-422e-93f7-8bd130f35483", "_c08N8LDjq4", false, 1386, false, "https://www.youtube.com/watch?v=_c08N8LDjq4", 62, "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", false, false, 3, [], 1, ~U[2025-10-30 14:00:55Z], ~U[2026-10-16 20:22:59Z], ~U[2026-10-16 20:22:59Z], "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "_c08N8LDjq4", 1386, false, "https://www.youtube.com/watch?v=_c08N8LDjq4", "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", false, 3, ~U[2025-10-30 14:00:55Z]] 22:22:59.887 [debug] QUERY OK source="sources" db=0.2ms idle=372.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:22:59.887 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:59.888 [debug] QUERY OK source="media_items" db=0.3ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [89627] 22:22:59.888 [debug] Current batch of media processed. Will check again in 1000ms 22:23:00.222 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:23:00.889 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1699, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", "id" => "NcSqbDLMJCo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NcSqbDLMJCo", "playlist_index" => 63, "timestamp" => 1762437648, "title" => "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "upload_date" => "20251106"} 22:23:00.890 [debug] QUERY OK source="sources" db=0.3ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:00.891 [debug] QUERY OK source="sources" db=0.5ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:00.892 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-06 14:00:48Z], 3] 22:23:00.895 [debug] QUERY OK source="media_items" db=2.0ms idle=670.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "26bc5ce0-d992-42f2-9c2c-8ecbdd3f709d", "NcSqbDLMJCo", false, 1699, false, "https://www.youtube.com/watch?v=NcSqbDLMJCo", 63, "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", false, false, 3, [], 1, ~U[2025-11-06 14:00:48Z], ~U[2026-10-16 20:23:00Z], ~U[2026-10-16 20:23:00Z], "I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "NcSqbDLMJCo", 1699, false, "https://www.youtube.com/watch?v=NcSqbDLMJCo", "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", false, 3, ~U[2025-11-06 14:00:48Z]] 22:23:00.896 [debug] QUERY OK source="sources" db=0.3ms idle=380.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:00.897 [debug] QUERY OK source="media_profiles" db=0.6ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:00.898 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [92461] 22:23:00.898 [debug] Current batch of media processed. Will check again in 1000ms 22:23:01.898 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1312, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", "id" => "bt4dqhzvEu0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bt4dqhzvEu0", "playlist_index" => 64, "timestamp" => 1763046097, "title" => "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "upload_date" => "20251113"} 22:23:01.899 [debug] QUERY OK source="sources" db=0.4ms idle=1004.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:01.900 [debug] QUERY OK source="sources" db=0.5ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:01.901 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-13 15:01:37Z], 3] 22:23:01.918 [debug] QUERY OK source="media_items" db=15.8ms idle=1004.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "1775d009-db38-4422-ad61-9f15a97213ce", "bt4dqhzvEu0", false, 1312, false, "https://www.youtube.com/watch?v=bt4dqhzvEu0", 64, "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", false, false, 3, [], 1, ~U[2025-11-13 15:01:37Z], ~U[2026-10-16 20:23:01Z], ~U[2026-10-16 20:23:01Z], "I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "bt4dqhzvEu0", 1312, false, "https://www.youtube.com/watch?v=bt4dqhzvEu0", "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", false, 3, ~U[2025-11-13 15:01:37Z]] 22:23:01.918 [debug] QUERY OK source="sources" db=0.2ms idle=402.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:01.919 [debug] QUERY OK source="media_profiles" db=0.1ms idle=19.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] 22:23:01.920 [debug] QUERY OK source="media_items" db=0.2ms idle=19.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [95282] 22:23:01.920 [debug] Current batch of media processed. Will check again in 1000ms 22:23:02.920 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1694, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", "id" => "XO87v1AxbWQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XO87v1AxbWQ", "playlist_index" => 65, "timestamp" => 1763650866, "title" => "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "upload_date" => "20251120"} 22:23:02.921 [debug] QUERY OK source="sources" db=0.2ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:02.921 [debug] QUERY OK source="sources" db=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:02.922 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-20 15:01:06Z], 3] 22:23:02.926 [debug] QUERY OK source="media_items" db=3.3ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "8c8724aa-e29b-4800-b266-7f632aed5a27", "XO87v1AxbWQ", false, 1694, false, "https://www.youtube.com/watch?v=XO87v1AxbWQ", 65, "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", false, false, 3, [], 1, ~U[2025-11-20 15:01:06Z], ~U[2026-10-16 20:23:02Z], ~U[2026-10-16 20:23:02Z], "I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "XO87v1AxbWQ", 1694, false, "https://www.youtube.com/watch?v=XO87v1AxbWQ", "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", false, 3, ~U[2025-11-20 15:01:06Z]] 22:23:02.926 [debug] QUERY OK source="sources" db=0.2ms idle=409.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:02.927 [debug] QUERY OK source="media_profiles" db=0.5ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:02.928 [debug] QUERY OK source="media_items" db=0.4ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [98129] 22:23:02.928 [debug] Current batch of media processed. Will check again in 1000ms 22:23:03.929 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1232, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", "id" => "qDN2-yN1EkI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qDN2-yN1EkI", "playlist_index" => 66, "timestamp" => 1764255705, "title" => "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "upload_date" => "20251127"} 22:23:03.930 [debug] QUERY OK source="sources" db=0.3ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:03.931 [debug] QUERY OK source="sources" db=0.8ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:03.933 [debug] QUERY OK source="media_items" db=1.4ms queue=0.2ms idle=1004.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-27 15:01:45Z], 3] 22:23:03.935 [debug] QUERY OK source="media_items" db=0.9ms idle=1005.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "c1b04e6f-88e2-4b65-ba90-57d00532ebea", "qDN2-yN1EkI", false, 1232, false, "https://www.youtube.com/watch?v=qDN2-yN1EkI", 66, "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", false, false, 3, [], 1, ~U[2025-11-27 15:01:45Z], ~U[2026-10-16 20:23:03Z], ~U[2026-10-16 20:23:03Z], "I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "qDN2-yN1EkI", 1232, false, "https://www.youtube.com/watch?v=qDN2-yN1EkI", "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", false, 3, ~U[2025-11-27 15:01:45Z]] 22:23:03.935 [debug] QUERY OK source="sources" db=0.3ms idle=416.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:03.936 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:03.937 [debug] QUERY OK source="media_items" db=0.2ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [101004] 22:23:03.937 [debug] Current batch of media processed. Will check again in 1000ms 22:23:04.937 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1620, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", "id" => "kOicCYUbF9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kOicCYUbF9Y", "playlist_index" => 67, "timestamp" => 1765465294, "title" => "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "upload_date" => "20251211"} 22:23:04.938 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:04.939 [debug] QUERY OK source="sources" db=0.3ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:04.940 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 15:01:34Z], 3] 22:23:04.942 [debug] QUERY OK source="media_items" db=1.4ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "aceaddf0-2877-4f72-bc69-9feb7f92a694", "kOicCYUbF9Y", false, 1620, false, "https://www.youtube.com/watch?v=kOicCYUbF9Y", 67, "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", false, false, 3, [], 1, ~U[2025-12-11 15:01:34Z], ~U[2026-10-16 20:23:04Z], ~U[2026-10-16 20:23:04Z], "I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "kOicCYUbF9Y", 1620, false, "https://www.youtube.com/watch?v=kOicCYUbF9Y", "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", false, 3, ~U[2025-12-11 15:01:34Z]] 22:23:04.942 [debug] QUERY OK source="sources" db=0.1ms idle=422.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:04.942 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:04.943 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [106794] 22:23:04.943 [debug] Current batch of media processed. Will check again in 1000ms 22:23:05.944 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1331, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", "id" => "49M-tMeNIb0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=49M-tMeNIb0", "playlist_index" => 68, "timestamp" => 1766070008, "title" => "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "upload_date" => "20251218"} 22:23:05.946 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:05.946 [debug] QUERY OK source="sources" db=0.1ms idle=1003.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:05.947 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 15:00:08Z], 3] 22:23:05.948 [debug] QUERY OK source="media_items" db=0.8ms idle=1004.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "4444995f-1b77-40bd-bcff-c880990c32dc", "49M-tMeNIb0", false, 1331, false, "https://www.youtube.com/watch?v=49M-tMeNIb0", 68, "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", false, false, 3, [], 1, ~U[2025-12-18 15:00:08Z], ~U[2026-10-16 20:23:05Z], ~U[2026-10-16 20:23:05Z], "I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "49M-tMeNIb0", 1331, false, "https://www.youtube.com/watch?v=49M-tMeNIb0", "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", false, 3, ~U[2025-12-18 15:00:08Z]] 22:23:05.949 [debug] QUERY OK source="sources" db=0.2ms idle=428.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:05.949 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:05.950 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [109831] 22:23:05.950 [debug] Current batch of media processed. Will check again in 1000ms 22:23:06.951 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1463, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", "id" => "EzliYAXWUnU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=EzliYAXWUnU", "playlist_index" => 69, "timestamp" => 1767884433, "title" => "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "upload_date" => "20260108"} 22:23:06.952 [debug] QUERY OK source="sources" db=0.5ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:06.953 [debug] QUERY OK source="sources" db=0.2ms queue=0.4ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:06.955 [debug] QUERY OK source="media_items" db=1.0ms queue=0.3ms idle=1004.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-08 15:00:33Z], 3] 22:23:06.958 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1005.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "63ebbef2-a6a5-4383-84d4-21307fec8e72", "EzliYAXWUnU", false, 1463, false, "https://www.youtube.com/watch?v=EzliYAXWUnU", 69, "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", false, false, 3, [], 1, ~U[2026-01-08 15:00:33Z], ~U[2026-10-16 20:23:06Z], ~U[2026-10-16 20:23:06Z], "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "EzliYAXWUnU", 1463, false, "https://www.youtube.com/watch?v=EzliYAXWUnU", "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", false, 3, ~U[2026-01-08 15:00:33Z]] 22:23:06.959 [debug] QUERY OK source="sources" db=0.5ms queue=0.3ms idle=436.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:06.960 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.4ms idle=6.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:06.961 [debug] QUERY OK source="media_items" db=0.8ms idle=6.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [118803] 22:23:06.961 [debug] Current batch of media processed. Will check again in 1000ms 22:23:07.962 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1063, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", "id" => "W25cAiJgVl4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=W25cAiJgVl4", "playlist_index" => 70, "timestamp" => 1768489257, "title" => "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "upload_date" => "20260115"} 22:23:07.963 [debug] QUERY OK source="sources" db=0.3ms idle=1005.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:07.964 [debug] QUERY OK source="sources" db=0.2ms idle=1004.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:07.965 [debug] QUERY OK source="media_items" db=0.5ms idle=1004.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-15 15:00:57Z], 3] 22:23:07.966 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "b61a95a6-fc44-4217-a979-5457989dc930", "W25cAiJgVl4", false, 1063, false, "https://www.youtube.com/watch?v=W25cAiJgVl4", 70, "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", false, false, 3, [], 1, ~U[2026-01-15 15:00:57Z], ~U[2026-10-16 20:23:07Z], ~U[2026-10-16 20:23:07Z], "I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "W25cAiJgVl4", 1063, false, "https://www.youtube.com/watch?v=W25cAiJgVl4", "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", false, 3, ~U[2026-01-15 15:00:57Z]] 22:23:07.967 [debug] QUERY OK source="sources" db=0.3ms idle=444.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:07.967 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:07.968 [debug] QUERY OK source="media_items" db=0.3ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [121817] 22:23:07.968 [debug] Current batch of media processed. Will check again in 1000ms 22:23:08.969 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1312, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", "id" => "ZhpmiMpVyZw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZhpmiMpVyZw", "playlist_index" => 71, "timestamp" => 1769094066, "title" => "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "upload_date" => "20260122"} 22:23:08.970 [debug] QUERY OK source="sources" db=0.3ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:08.971 [debug] QUERY OK source="sources" db=0.5ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:08.972 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-22 15:01:06Z], 3] 22:23:08.973 [debug] QUERY OK source="media_items" db=1.0ms idle=1004.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "90e6fc9d-b144-4924-828f-4edfc58d73d0", "ZhpmiMpVyZw", false, 1312, false, "https://www.youtube.com/watch?v=ZhpmiMpVyZw", 71, "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", false, false, 3, [], 1, ~U[2026-01-22 15:01:06Z], ~U[2026-10-16 20:23:08Z], ~U[2026-10-16 20:23:08Z], "I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "ZhpmiMpVyZw", 1312, false, "https://www.youtube.com/watch?v=ZhpmiMpVyZw", "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", false, 3, ~U[2026-01-22 15:01:06Z]] 22:23:08.974 [debug] QUERY OK source="sources" db=0.2ms idle=450.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:08.975 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:08.975 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [124860] 22:23:08.975 [debug] Current batch of media processed. Will check again in 1000ms 22:23:09.976 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1476, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", "id" => "mJgxlMp3x34", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mJgxlMp3x34", "playlist_index" => 72, "timestamp" => 1769698882, "title" => "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "upload_date" => "20260129"} 22:23:09.977 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:09.977 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:09.978 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-29 15:01:22Z], 3] 22:23:09.980 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "8f6d57fb-5d67-4744-885e-1fe628524a41", "mJgxlMp3x34", false, 1476, false, "https://www.youtube.com/watch?v=mJgxlMp3x34", 72, "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", false, false, 3, [], 1, ~U[2026-01-29 15:01:22Z], ~U[2026-10-16 20:23:09Z], ~U[2026-10-16 20:23:09Z], "I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "mJgxlMp3x34", 1476, false, "https://www.youtube.com/watch?v=mJgxlMp3x34", "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", false, 3, ~U[2026-01-29 15:01:22Z]] 22:23:09.980 [debug] QUERY OK source="sources" db=0.2ms idle=455.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:09.981 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:09.981 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [127637] 22:23:09.981 [debug] Current batch of media processed. Will check again in 1000ms 22:23:10.982 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1929, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", "id" => "o4CgI8DjMPw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=o4CgI8DjMPw", "playlist_index" => 73, "timestamp" => 1770303689, "title" => "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "upload_date" => "20260205"} 22:23:10.983 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:10.983 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:10.984 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-05 15:01:29Z], 3] 22:23:10.985 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "940e8a64-592f-482a-9212-52f208da11c3", "o4CgI8DjMPw", false, 1929, false, "https://www.youtube.com/watch?v=o4CgI8DjMPw", 73, "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", false, false, 3, [], 1, ~U[2026-02-05 15:01:29Z], ~U[2026-10-16 20:23:10Z], ~U[2026-10-16 20:23:10Z], "I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "o4CgI8DjMPw", 1929, false, "https://www.youtube.com/watch?v=o4CgI8DjMPw", "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", false, 3, ~U[2026-02-05 15:01:29Z]] 22:23:10.986 [debug] QUERY OK source="sources" db=0.1ms idle=460.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:10.986 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:10.987 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [130670] 22:23:10.987 [debug] Current batch of media processed. Will check again in 1000ms 22:23:11.988 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1827, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", "id" => "gZRnKqaiy3k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gZRnKqaiy3k", "playlist_index" => 74, "timestamp" => 1770908476, "title" => "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "upload_date" => "20260212"} 22:23:11.989 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:11.990 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:11.990 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-12 15:01:16Z], 3] 22:23:11.993 [debug] QUERY OK source="media_items" db=1.3ms idle=1004.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "6cf262be-204f-4e2f-b033-f2c9bde41f36", "gZRnKqaiy3k", false, 1827, false, "https://www.youtube.com/watch?v=gZRnKqaiy3k", 74, "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", false, false, 3, [], 1, ~U[2026-02-12 15:01:16Z], ~U[2026-10-16 20:23:11Z], ~U[2026-10-16 20:23:11Z], "I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "gZRnKqaiy3k", 1827, false, "https://www.youtube.com/watch?v=gZRnKqaiy3k", "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", false, 3, ~U[2026-02-12 15:01:16Z]] 22:23:11.993 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=466.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:11.994 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:11.995 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [133899] 22:23:11.995 [debug] Current batch of media processed. Will check again in 1000ms 22:23:12.995 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1488, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", "id" => "XPD5zoS3yLA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XPD5zoS3yLA", "playlist_index" => 75, "timestamp" => 1771513262, "title" => "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "upload_date" => "20260219"} 22:23:12.996 [debug] QUERY OK source="sources" db=0.3ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:12.997 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:12.998 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 15:01:02Z], 3] 22:23:12.999 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "f2e71a96-4335-4268-8605-721fd7ecd4ba", "XPD5zoS3yLA", false, 1488, false, "https://www.youtube.com/watch?v=XPD5zoS3yLA", 75, "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", false, false, 3, [], 1, ~U[2026-02-19 15:01:02Z], ~U[2026-10-16 20:23:12Z], ~U[2026-10-16 20:23:12Z], "I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "XPD5zoS3yLA", 1488, false, "https://www.youtube.com/watch?v=XPD5zoS3yLA", "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", false, 3, ~U[2026-02-19 15:01:02Z]] 22:23:13.000 [debug] QUERY OK source="sources" db=0.3ms idle=472.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:13.000 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:13.001 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [137079] 22:23:13.001 [debug] Current batch of media processed. Will check again in 1000ms 22:23:14.003 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1391, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", "id" => "Op8Tlzdn5eo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Op8Tlzdn5eo", "playlist_index" => 76, "timestamp" => 1772118051, "title" => "Vi har købt en 3D printer! | Livet på gården Ep. 78", "upload_date" => "20260226"} 22:23:14.005 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1004.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:14.006 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=1005.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:14.007 [debug] QUERY OK source="media_items" db=0.5ms idle=1005.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 15:00:51Z], 3] 22:23:14.009 [debug] QUERY OK source="media_items" db=1.1ms idle=1005.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi har købt en 3D printer! | Livet på gården Ep. 78", "472ad6be-7d17-42b2-9ae7-714e29dcc28a", "Op8Tlzdn5eo", false, 1391, false, "https://www.youtube.com/watch?v=Op8Tlzdn5eo", 76, "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", false, false, 3, [], 1, ~U[2026-02-26 15:00:51Z], ~U[2026-10-16 20:23:14Z], ~U[2026-10-16 20:23:14Z], "Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi har købt en 3D printer! | Livet på gården Ep. 78", "Op8Tlzdn5eo", 1391, false, "https://www.youtube.com/watch?v=Op8Tlzdn5eo", "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", false, 3, ~U[2026-02-26 15:00:51Z]] 22:23:14.009 [debug] QUERY OK source="sources" db=0.3ms idle=480.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:14.010 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:14.011 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [140290] 22:23:14.011 [debug] Current batch of media processed. Will check again in 1000ms 22:23:15.011 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1601, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", "id" => "Th4fpPdHVU0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Th4fpPdHVU0", "playlist_index" => 77, "timestamp" => 1772722858, "title" => "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "upload_date" => "20260305"} 22:23:15.012 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:15.013 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:15.014 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-05 15:00:58Z], 3] 22:23:15.016 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "e1fe369e-a154-40db-ac25-0d7f43d6981e", "Th4fpPdHVU0", false, 1601, false, "https://www.youtube.com/watch?v=Th4fpPdHVU0", 77, "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", false, false, 3, [], 1, ~U[2026-03-05 15:00:58Z], ~U[2026-10-16 20:23:15Z], ~U[2026-10-16 20:23:15Z], "I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "Th4fpPdHVU0", 1601, false, "https://www.youtube.com/watch?v=Th4fpPdHVU0", "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", false, 3, ~U[2026-03-05 15:00:58Z]] 22:23:15.016 [debug] QUERY OK source="sources" db=0.2ms idle=486.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:15.017 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:15.018 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [143569] 22:23:15.018 [debug] Current batch of media processed. Will check again in 1000ms 22:23:16.018 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1829, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", "id" => "WZAGvRqldgo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WZAGvRqldgo", "playlist_index" => 78, "timestamp" => 1773327658, "title" => "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "upload_date" => "20260312"} 22:23:16.019 [debug] QUERY OK source="sources" db=0.7ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:16.020 [debug] QUERY OK source="sources" db=0.6ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:16.021 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 15:00:58Z], 3] 22:23:16.023 [debug] QUERY OK source="media_items" db=1.1ms idle=1004.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "c893c5a6-de21-44c8-b549-d35fa3e4e884", "WZAGvRqldgo", false, 1829, false, "https://www.youtube.com/watch?v=WZAGvRqldgo", 78, "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", false, false, 3, [], 1, ~U[2026-03-12 15:00:58Z], ~U[2026-10-16 20:23:16Z], ~U[2026-10-16 20:23:16Z], "I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "WZAGvRqldgo", 1829, false, "https://www.youtube.com/watch?v=WZAGvRqldgo", "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", false, 3, ~U[2026-03-12 15:00:58Z]] 22:23:16.023 [debug] QUERY OK source="sources" db=0.1ms idle=493.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:16.024 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:16.025 [debug] QUERY OK source="media_items" db=0.3ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [146839] 22:23:16.025 [debug] Current batch of media processed. Will check again in 1000ms 22:23:17.025 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1440, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", "id" => "wvCb1ystnC0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wvCb1ystnC0", "playlist_index" => 79, "timestamp" => 1773932500, "title" => "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "upload_date" => "20260319"} 22:23:17.026 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:17.026 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:17.027 [debug] QUERY OK source="media_items" db=0.6ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-19 15:01:40Z], 3] 22:23:17.029 [debug] QUERY OK source="media_items" db=1.3ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "a7c70c01-d0b0-413f-98f4-03410d543e89", "wvCb1ystnC0", false, 1440, false, "https://www.youtube.com/watch?v=wvCb1ystnC0", 79, "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", false, false, 3, [], 1, ~U[2026-03-19 15:01:40Z], ~U[2026-10-16 20:23:17Z], ~U[2026-10-16 20:23:17Z], "I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "wvCb1ystnC0", 1440, false, "https://www.youtube.com/watch?v=wvCb1ystnC0", "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", false, 3, ~U[2026-03-19 15:01:40Z]] 22:23:17.030 [debug] QUERY OK source="sources" db=0.1ms idle=498.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:17.030 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:17.031 [debug] QUERY OK source="media_items" db=0.3ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [150144] 22:23:17.031 [debug] Current batch of media processed. Will check again in 1000ms 22:23:18.032 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1393, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", "id" => "pxD1_Ax0eMI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pxD1_Ax0eMI", "playlist_index" => 80, "timestamp" => 1774537291, "title" => "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "upload_date" => "20260326"} 22:23:18.033 [debug] QUERY OK source="sources" db=0.3ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:18.033 [debug] QUERY OK source="sources" db=0.1ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:18.034 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 15:01:31Z], 3] 22:23:18.037 [debug] QUERY OK source="media_items" db=2.5ms idle=1003.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "861007e9-0cf1-4f92-89f1-1cde89361530", "pxD1_Ax0eMI", false, 1393, false, "https://www.youtube.com/watch?v=pxD1_Ax0eMI", 80, "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", false, false, 3, [], 1, ~U[2026-03-26 15:01:31Z], ~U[2026-10-16 20:23:18Z], ~U[2026-10-16 20:23:18Z], "I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "pxD1_Ax0eMI", 1393, false, "https://www.youtube.com/watch?v=pxD1_Ax0eMI", "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", false, 3, ~U[2026-03-26 15:01:31Z]] 22:23:18.038 [debug] QUERY OK source="sources" db=0.2ms idle=505.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:18.038 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:18.039 [debug] QUERY OK source="media_items" db=0.2ms idle=5.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [153491] 22:23:18.039 [debug] Current batch of media processed. Will check again in 1000ms 22:23:19.040 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1291, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", "id" => "dZk6prUzZkw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZk6prUzZkw", "playlist_index" => 81, "timestamp" => 1775138455, "title" => "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "upload_date" => "20260402"} 22:23:19.041 [debug] QUERY OK source="sources" db=0.3ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:19.042 [debug] QUERY OK source="sources" db=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:19.042 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1003.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 14:00:55Z], 3] 22:23:19.045 [debug] QUERY OK source="media_items" db=2.0ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "450d50d7-e4b5-45f6-a949-16bb2bc4b72b", "dZk6prUzZkw", false, 1291, false, "https://www.youtube.com/watch?v=dZk6prUzZkw", 81, "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", false, false, 3, [], 1, ~U[2026-04-02 14:00:55Z], ~U[2026-10-16 20:23:19Z], ~U[2026-10-16 20:23:19Z], "I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "dZk6prUzZkw", 1291, false, "https://www.youtube.com/watch?v=dZk6prUzZkw", "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", false, 3, ~U[2026-04-02 14:00:55Z]] 22:23:19.047 [debug] QUERY OK source="sources" db=1.4ms idle=513.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:19.049 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=6.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:19.050 [debug] QUERY OK source="media_items" db=0.7ms idle=7.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [156908] 22:23:19.051 [debug] Current batch of media processed. Will check again in 1000ms 22:23:20.052 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1232, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", "id" => "SIJsPP2BFVw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=SIJsPP2BFVw", "playlist_index" => 82, "timestamp" => 1776348044, "title" => "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "upload_date" => "20260416"} 22:23:20.053 [debug] QUERY OK source="sources" db=0.3ms idle=1007.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:20.054 [debug] QUERY OK source="sources" db=0.2ms idle=1005.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:20.055 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1005.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 14:00:44Z], 3] 22:23:20.056 [debug] QUERY OK source="media_items" db=0.9ms idle=1004.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "ede7823e-4126-4bf6-b84a-f92ea32d7223", "SIJsPP2BFVw", false, 1232, false, "https://www.youtube.com/watch?v=SIJsPP2BFVw", 82, "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", false, false, 3, [], 1, ~U[2026-04-16 14:00:44Z], ~U[2026-10-16 20:23:20Z], ~U[2026-10-16 20:23:20Z], "I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "SIJsPP2BFVw", 1232, false, "https://www.youtube.com/watch?v=SIJsPP2BFVw", "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", false, 3, ~U[2026-04-16 14:00:44Z]] 22:23:20.057 [debug] QUERY OK source="sources" db=0.2ms idle=522.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:20.058 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:20.058 [debug] QUERY OK source="media_items" db=0.4ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [163716] 22:23:20.058 [debug] Current batch of media processed. Will check again in 1000ms 22:23:21.059 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1621, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", "id" => "da0fXptSlUY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=da0fXptSlUY", "playlist_index" => 83, "timestamp" => 1776952860, "title" => "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "upload_date" => "20260423"} 22:23:21.060 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:21.060 [debug] QUERY OK source="sources" db=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:21.061 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 14:01:00Z], 3] 22:23:21.063 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "03151156-a0f9-4753-98f2-656e5d596fa0", "da0fXptSlUY", false, 1621, false, "https://www.youtube.com/watch?v=da0fXptSlUY", 83, "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", false, false, 3, [], 1, ~U[2026-04-23 14:01:00Z], ~U[2026-10-16 20:23:21Z], ~U[2026-10-16 20:23:21Z], "I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "da0fXptSlUY", 1621, false, "https://www.youtube.com/watch?v=da0fXptSlUY", "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", false, 3, ~U[2026-04-23 14:01:00Z]] 22:23:21.064 [debug] QUERY OK source="sources" db=0.2ms idle=528.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:21.064 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:21.065 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [167235] 22:23:21.065 [debug] Current batch of media processed. Will check again in 1000ms 22:23:22.065 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1577, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", "id" => "UmaRjrKDD40", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UmaRjrKDD40", "playlist_index" => 84, "timestamp" => 1777557660, "title" => "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "upload_date" => "20260430"} 22:23:22.066 [debug] QUERY OK source="sources" db=0.7ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:22.068 [debug] QUERY OK source="sources" db=0.3ms queue=0.5ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:22.069 [debug] QUERY OK source="media_items" db=0.8ms queue=0.2ms idle=1004.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 14:01:00Z], 3] 22:23:22.072 [debug] QUERY OK source="media_items" db=2.0ms idle=1004.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "431d2a97-39cd-4945-9e4a-1f2fed1c4339", "UmaRjrKDD40", false, 1577, false, "https://www.youtube.com/watch?v=UmaRjrKDD40", 84, "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", false, false, 3, [], 1, ~U[2026-04-30 14:01:00Z], ~U[2026-10-16 20:23:22Z], ~U[2026-10-16 20:23:22Z], "I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "UmaRjrKDD40", 1577, false, "https://www.youtube.com/watch?v=UmaRjrKDD40", "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", false, 3, ~U[2026-04-30 14:01:00Z]] 22:23:22.073 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=536.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:22.074 [debug] QUERY OK source="media_profiles" db=0.8ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:22.075 [debug] QUERY OK source="media_items" db=0.8ms idle=6.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [170380] 22:23:22.076 [debug] Current batch of media processed. Will check again in 1000ms 22:23:23.076 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1852, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", "id" => "RJWBKBicq0Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RJWBKBicq0Q", "playlist_index" => 85, "timestamp" => 1778164608, "title" => "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "upload_date" => "20260507"} 22:23:23.078 [debug] QUERY OK source="sources" db=0.8ms idle=1004.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:23.079 [debug] QUERY OK source="sources" db=0.3ms queue=0.4ms idle=1004.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:23.080 [debug] QUERY OK source="media_items" db=0.9ms idle=1004.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-07 14:36:48Z], 3] 22:23:23.082 [debug] QUERY OK source="media_items" db=1.3ms idle=1004.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "49d550c0-8731-43af-9bfa-6289d8964e19", "RJWBKBicq0Q", false, 1852, false, "https://www.youtube.com/watch?v=RJWBKBicq0Q", 85, "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", false, false, 3, [], 1, ~U[2026-05-07 14:36:48Z], ~U[2026-10-16 20:23:23Z], ~U[2026-10-16 20:23:23Z], "I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "RJWBKBicq0Q", 1852, false, "https://www.youtube.com/watch?v=RJWBKBicq0Q", "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", false, 3, ~U[2026-05-07 14:36:48Z]] 22:23:23.083 [debug] QUERY OK source="sources" db=0.4ms idle=545.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:23.084 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.3ms idle=5.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:23.085 [debug] QUERY OK source="media_items" db=0.6ms idle=5.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [173871] 22:23:23.085 [debug] Current batch of media processed. Will check again in 1000ms 22:23:24.085 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1704, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", "id" => "YXmL6qrY1G0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=YXmL6qrY1G0", "playlist_index" => 86, "timestamp" => 1778767249, "title" => "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "upload_date" => "20260514"} 22:23:24.086 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:24.086 [debug] QUERY OK source="sources" db=0.1ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:24.087 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-14 14:00:49Z], 3] 22:23:24.089 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "054a3614-d2c8-4503-802b-ac08f6d434ee", "YXmL6qrY1G0", false, 1704, false, "https://www.youtube.com/watch?v=YXmL6qrY1G0", 86, "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", false, false, 3, [], 1, ~U[2026-05-14 14:00:49Z], ~U[2026-10-16 20:23:24Z], ~U[2026-10-16 20:23:24Z], "I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "YXmL6qrY1G0", 1704, false, "https://www.youtube.com/watch?v=YXmL6qrY1G0", "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", false, 3, ~U[2026-05-14 14:00:49Z]] 22:23:24.089 [debug] QUERY OK source="sources" db=0.2ms idle=551.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:24.090 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:24.091 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [177389] 22:23:24.091 [debug] Current batch of media processed. Will check again in 1000ms 22:23:25.091 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 2166, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", "id" => "7HdqBREGHtA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7HdqBREGHtA", "playlist_index" => 87, "timestamp" => 1779372609, "title" => "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "upload_date" => "20260521"} 22:23:25.092 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:25.092 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:25.093 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-21 14:10:09Z], 3] 22:23:25.095 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "b7a2320a-a4b8-4f45-8e99-5d01e39d5093", "7HdqBREGHtA", false, 2166, false, "https://www.youtube.com/watch?v=7HdqBREGHtA", 87, "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", false, false, 3, [], 1, ~U[2026-05-21 14:10:09Z], ~U[2026-10-16 20:23:25Z], ~U[2026-10-16 20:23:25Z], "I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "7HdqBREGHtA", 2166, false, "https://www.youtube.com/watch?v=7HdqBREGHtA", "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", false, 3, ~U[2026-05-21 14:10:09Z]] 22:23:25.095 [debug] QUERY OK source="sources" db=0.1ms idle=556.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:25.096 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:25.096 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [180439] 22:23:25.096 [debug] Current batch of media processed. Will check again in 1000ms 22:23:26.097 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1557, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", "id" => "Ndtyto4SfDs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Ndtyto4SfDs", "playlist_index" => 88, "timestamp" => 1779976838, "title" => "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "upload_date" => "20260528"} 22:23:26.098 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:26.099 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:26.100 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-28 14:00:38Z], 3] 22:23:26.102 [debug] QUERY OK source="media_items" db=1.4ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "fe976552-eee8-45c1-a3bd-210154b938a1", "Ndtyto4SfDs", false, 1557, false, "https://www.youtube.com/watch?v=Ndtyto4SfDs", 88, "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", false, false, 3, [], 1, ~U[2026-05-28 14:00:38Z], ~U[2026-10-16 20:23:26Z], ~U[2026-10-16 20:23:26Z], "Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "Ndtyto4SfDs", 1557, false, "https://www.youtube.com/watch?v=Ndtyto4SfDs", "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", false, 3, ~U[2026-05-28 14:00:38Z]] 22:23:26.102 [debug] QUERY OK source="sources" db=0.2ms idle=562.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:26.103 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:26.104 [debug] QUERY OK source="media_items" db=0.2ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [184502] 22:23:26.104 [debug] Current batch of media processed. Will check again in 1000ms 22:23:27.105 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1465, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", "id" => "f16_HDKB4SQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f16_HDKB4SQ", "playlist_index" => 89, "timestamp" => 1780581603, "title" => "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "upload_date" => "20260604"} 22:23:27.106 [debug] QUERY OK source="sources" db=0.2ms idle=1004.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:27.106 [debug] QUERY OK source="sources" db=0.1ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:27.107 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-04 14:00:03Z], 3] 22:23:27.109 [debug] QUERY OK source="media_items" db=1.2ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "03eee3e1-447d-424f-b0eb-19671465d7f3", "f16_HDKB4SQ", false, 1465, false, "https://www.youtube.com/watch?v=f16_HDKB4SQ", 89, "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", false, false, 3, [], 1, ~U[2026-06-04 14:00:03Z], ~U[2026-10-16 20:23:27Z], ~U[2026-10-16 20:23:27Z], "I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "f16_HDKB4SQ", 1465, false, "https://www.youtube.com/watch?v=f16_HDKB4SQ", "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", false, 3, ~U[2026-06-04 14:00:03Z]] 22:23:27.109 [debug] QUERY OK source="sources" db=0.1ms idle=568.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:27.110 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:27.110 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [187864] 22:23:27.110 [debug] Current batch of media processed. Will check again in 1000ms 22:23:28.111 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1786, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", "id" => "n93gXkFbEZc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=n93gXkFbEZc", "playlist_index" => 90, "timestamp" => 1781186434, "title" => "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "upload_date" => "20260611"} 22:23:28.112 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:28.113 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:28.113 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-11 14:00:34Z], 3] 22:23:28.115 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "1a85e331-048a-490a-9fc3-5cd8f499538a", "n93gXkFbEZc", false, 1786, false, "https://www.youtube.com/watch?v=n93gXkFbEZc", 90, "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", false, false, 3, [], 1, ~U[2026-06-11 14:00:34Z], ~U[2026-10-16 20:23:28Z], ~U[2026-10-16 20:23:28Z], "I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "n93gXkFbEZc", 1786, false, "https://www.youtube.com/watch?v=n93gXkFbEZc", "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", false, 3, ~U[2026-06-11 14:00:34Z]] 22:23:28.115 [debug] QUERY OK source="sources" db=0.1ms idle=573.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:28.116 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:28.117 [debug] QUERY OK source="media_items" db=0.5ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [191201] 22:23:28.117 [debug] Current batch of media processed. Will check again in 1000ms 22:23:29.117 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1864, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", "id" => "PnawT2un6OQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PnawT2un6OQ", "playlist_index" => 91, "timestamp" => 1781791230, "title" => "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "upload_date" => "20260618"} 22:23:29.118 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:29.118 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:29.119 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-18 14:00:30Z], 3] 22:23:29.121 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "59dbba83-0a7a-4927-ba9f-c7cae1132f95", "PnawT2un6OQ", false, 1864, false, "https://www.youtube.com/watch?v=PnawT2un6OQ", 91, "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", false, false, 3, [], 1, ~U[2026-06-18 14:00:30Z], ~U[2026-10-16 20:23:29Z], ~U[2026-10-16 20:23:29Z], "Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "PnawT2un6OQ", 1864, false, "https://www.youtube.com/watch?v=PnawT2un6OQ", "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", false, 3, ~U[2026-06-18 14:00:30Z]] 22:23:29.121 [debug] QUERY OK source="sources" db=0.1ms idle=576.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:29.121 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:29.122 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [194710] 22:23:29.122 [debug] Current batch of media processed. Will check again in 1000ms 22:23:29.314 [info] {"source":"oban","duration":791,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:23:30.135 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1619, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", "id" => "_yVgsAnBwjQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_yVgsAnBwjQ", "playlist_index" => 92, "timestamp" => 1782396035, "title" => "En stor gave og keramikproduktion | Livet på gården Ep. 94", "upload_date" => "20260625"} 22:23:30.174 [debug] QUERY OK source="sources" db=38.8ms idle=1014.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:30.224 [debug] QUERY OK source="sources" db=4.8ms queue=43.9ms idle=1053.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:30.267 [debug] QUERY OK source="media_items" db=18.6ms queue=24.3ms idle=1101.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-25 14:00:35Z], 3] 22:23:30.281 [debug] QUERY OK source="media_items" db=5.8ms idle=960.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En stor gave og keramikproduktion | Livet på gården Ep. 94", "13191b86-80a7-4dcd-8abf-48d1431efe4d", "_yVgsAnBwjQ", false, 1619, false, "https://www.youtube.com/watch?v=_yVgsAnBwjQ", 92, "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", false, false, 3, [], 1, ~U[2026-06-25 14:00:35Z], ~U[2026-10-16 20:23:30Z], ~U[2026-10-16 20:23:30Z], "I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En stor gave og keramikproduktion | Livet på gården Ep. 94", "_yVgsAnBwjQ", 1619, false, "https://www.youtube.com/watch?v=_yVgsAnBwjQ", "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", false, 3, ~U[2026-06-25 14:00:35Z]] 22:23:30.284 [debug] QUERY OK source="sources" db=0.7ms queue=2.2ms idle=736.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:30.286 [debug] QUERY OK source="media_profiles" db=1.4ms idle=110.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:30.287 [debug] QUERY OK source="media_items" db=0.4ms idle=62.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 [198180] 22:23:30.287 [debug] Current batch of media processed. Will check again in 1000ms 22:23:31.288 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1577, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", "id" => "B_bPtvpGVx4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=B_bPtvpGVx4", "playlist_index" => 93, "timestamp" => 1783000821, "title" => "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "upload_date" => "20260702"} 22:23:31.289 [debug] QUERY OK source="sources" db=0.3ms idle=1008.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:31.290 [debug] QUERY OK source="sources" db=0.2ms idle=1004.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:31.290 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-02 14:00:21Z], 3] 22:23:31.292 [debug] QUERY OK source="media_items" db=1.2ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "187f005e-3fa0-44da-9199-228f430d818f", "B_bPtvpGVx4", false, 1577, false, "https://www.youtube.com/watch?v=B_bPtvpGVx4", 93, "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", false, false, 3, [], 1, ~U[2026-07-02 14:00:21Z], ~U[2026-10-16 20:23:31Z], ~U[2026-10-16 20:23:31Z], "Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "B_bPtvpGVx4", 1577, false, "https://www.youtube.com/watch?v=B_bPtvpGVx4", "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", false, 3, ~U[2026-07-02 14:00:21Z]] 22:23:31.294 [debug] QUERY OK source="sources" db=0.5ms idle=744.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:31.294 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:31.295 [debug] QUERY OK source="media_items" db=0.4ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [201686] 22:23:31.295 [debug] Current batch of media processed. Will check again in 1000ms 22:23:32.296 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1588, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", "id" => "DDVRQGOAxZs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DDVRQGOAxZs", "playlist_index" => 94, "timestamp" => 1783605616, "title" => "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "upload_date" => "20260709"} 22:23:32.297 [debug] QUERY OK source="sources" db=0.3ms idle=1004.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:32.298 [debug] QUERY OK source="sources" db=0.2ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:32.298 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-09 14:00:16Z], 3] 22:23:32.300 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "a71a989a-5cb2-4b8f-80d3-66427098d6c1", "DDVRQGOAxZs", false, 1588, false, "https://www.youtube.com/watch?v=DDVRQGOAxZs", 94, "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", false, false, 3, [], 1, ~U[2026-07-09 14:00:16Z], ~U[2026-10-16 20:23:32Z], ~U[2026-10-16 20:23:32Z], "I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "DDVRQGOAxZs", 1588, false, "https://www.youtube.com/watch?v=DDVRQGOAxZs", "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", false, 3, ~U[2026-07-09 14:00:16Z]] 22:23:32.300 [debug] QUERY OK source="sources" db=0.2ms idle=750.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:32.301 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:32.302 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [205215] 22:23:32.302 [debug] Current batch of media processed. Will check again in 1000ms 22:23:33.302 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 2296, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", "id" => "nVHF5b2mfcg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nVHF5b2mfcg", "playlist_index" => 95, "timestamp" => 1784815227, "title" => "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "upload_date" => "20260723"} 22:23:33.303 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:33.303 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:33.304 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-23 14:00:27Z], 3] 22:23:33.308 [debug] QUERY OK source="media_items" db=2.9ms idle=1002.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "c307c36e-d198-4c48-bd24-5a654b540b9e", "nVHF5b2mfcg", false, 2296, false, "https://www.youtube.com/watch?v=nVHF5b2mfcg", 95, "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", false, false, 3, [], 1, ~U[2026-07-23 14:00:27Z], ~U[2026-10-16 20:23:33Z], ~U[2026-10-16 20:23:33Z], "Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "nVHF5b2mfcg", 2296, false, "https://www.youtube.com/watch?v=nVHF5b2mfcg", "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", false, 3, ~U[2026-07-23 14:00:27Z]] 22:23:33.308 [debug] QUERY OK source="sources" db=0.2ms idle=756.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:33.309 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:33.309 [debug] QUERY OK source="media_items" db=0.2ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [212241] 22:23:33.309 [debug] Current batch of media processed. Will check again in 1000ms 22:23:34.310 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1613, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", "id" => "ay_WnFmck9s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ay_WnFmck9s", "playlist_index" => 96, "timestamp" => 1785420002, "title" => "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "upload_date" => "20260730"} 22:23:34.311 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:34.311 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:34.312 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-30 14:00:02Z], 3] 22:23:34.314 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "38b3c9f6-ec4f-4892-aca7-ae4a54b6a219", "ay_WnFmck9s", false, 1613, false, "https://www.youtube.com/watch?v=ay_WnFmck9s", 96, "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", false, false, 3, [], 1, ~U[2026-07-30 14:00:02Z], ~U[2026-10-16 20:23:34Z], ~U[2026-10-16 20:23:34Z], "I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "ay_WnFmck9s", 1613, false, "https://www.youtube.com/watch?v=ay_WnFmck9s", "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", false, 3, ~U[2026-07-30 14:00:02Z]] 22:23:34.314 [debug] QUERY OK source="sources" db=0.2ms idle=762.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:34.315 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:34.315 [debug] QUERY OK source="media_items" db=0.3ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [215043] 22:23:34.315 [debug] Current batch of media processed. Will check again in 1000ms 22:23:35.316 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1593, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", "id" => "hEbBs6J6HSM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hEbBs6J6HSM", "playlist_index" => 97, "timestamp" => 1786024802, "title" => "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "upload_date" => "20260806"} 22:23:35.317 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:35.317 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:35.318 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-06 14:00:02Z], 3] 22:23:35.320 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "3da9bac0-1750-47de-8ab7-cf00bd8f6b70", "hEbBs6J6HSM", false, 1593, false, "https://www.youtube.com/watch?v=hEbBs6J6HSM", 97, "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", false, false, 3, [], 1, ~U[2026-08-06 14:00:02Z], ~U[2026-10-16 20:23:35Z], ~U[2026-10-16 20:23:35Z], "Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "hEbBs6J6HSM", 1593, false, "https://www.youtube.com/watch?v=hEbBs6J6HSM", "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", false, 3, ~U[2026-08-06 14:00:02Z]] 22:23:35.320 [debug] QUERY OK source="sources" db=0.1ms idle=767.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:35.321 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:35.321 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [218665] 22:23:35.321 [debug] Current batch of media processed. Will check again in 1000ms 22:23:36.322 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 2197, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", "id" => "s3kP8lEsOEQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=s3kP8lEsOEQ", "playlist_index" => 98, "timestamp" => 1787234433, "title" => "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "upload_date" => "20260820"} 22:23:36.323 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:36.323 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:36.324 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-20 14:00:33Z], 3] 22:23:36.326 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "db7a5e90-c210-484f-adcf-0f25fc9ecdab", "s3kP8lEsOEQ", false, 2197, false, "https://www.youtube.com/watch?v=s3kP8lEsOEQ", 98, "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", false, false, 3, [], 1, ~U[2026-08-20 14:00:33Z], ~U[2026-10-16 20:23:36Z], ~U[2026-10-16 20:23:36Z], "I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "s3kP8lEsOEQ", 2197, false, "https://www.youtube.com/watch?v=s3kP8lEsOEQ", "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", false, 3, ~U[2026-08-20 14:00:33Z]] 22:23:36.326 [debug] QUERY OK source="sources" db=0.1ms idle=771.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:36.326 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:36.327 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [225855] 22:23:36.327 [debug] Current batch of media processed. Will check again in 1000ms 22:23:37.328 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1119, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", "id" => "EPOSOFmeG0o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=EPOSOFmeG0o", "playlist_index" => 99, "timestamp" => 1787839213, "title" => "Videre med renovering og nye høns! | Livet på gården Ep. 101", "upload_date" => "20260827"} 22:23:37.329 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:37.329 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:37.330 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-27 14:00:13Z], 3] 22:23:37.332 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Videre med renovering og nye høns! | Livet på gården Ep. 101", "132a858a-933c-47d4-9887-bd68cc14d61f", "EPOSOFmeG0o", false, 1119, false, "https://www.youtube.com/watch?v=EPOSOFmeG0o", 99, "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", false, false, 3, [], 1, ~U[2026-08-27 14:00:13Z], ~U[2026-10-16 20:23:37Z], ~U[2026-10-16 20:23:37Z], "I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Videre med renovering og nye høns! | Livet på gården Ep. 101", "EPOSOFmeG0o", 1119, false, "https://www.youtube.com/watch?v=EPOSOFmeG0o", "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", false, 3, ~U[2026-08-27 14:00:13Z]] 22:23:37.332 [debug] QUERY OK source="sources" db=0.1ms idle=776.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:37.332 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:37.333 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [229628] 22:23:37.333 [debug] Current batch of media processed. Will check again in 1000ms 22:23:38.334 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1288, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", "id" => "X9r5hiSunVQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=X9r5hiSunVQ", "playlist_index" => 100, "timestamp" => 1788444022, "title" => "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "upload_date" => "20260903"} 22:23:38.335 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:38.335 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:38.336 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-03 14:00:22Z], 3] 22:23:38.338 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "666f73aa-210d-4481-87d4-53a89cbdaa89", "X9r5hiSunVQ", false, 1288, false, "https://www.youtube.com/watch?v=X9r5hiSunVQ", 100, "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", false, false, 3, [], 1, ~U[2026-09-03 14:00:22Z], ~U[2026-10-16 20:23:38Z], ~U[2026-10-16 20:23:38Z], "I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "X9r5hiSunVQ", 1288, false, "https://www.youtube.com/watch?v=X9r5hiSunVQ", "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", false, 3, ~U[2026-09-03 14:00:22Z]] 22:23:38.338 [debug] QUERY OK source="sources" db=0.3ms idle=781.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:38.339 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:38.339 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [233329] 22:23:38.339 [debug] Current batch of media processed. Will check again in 1000ms 22:23:39.340 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1227, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", "id" => "kg2u-aUyisg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kg2u-aUyisg", "playlist_index" => 101, "timestamp" => 1789048809, "title" => "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "upload_date" => "20260910"} 22:23:39.341 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:39.341 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:39.342 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-10 14:00:09Z], 3] 22:23:39.344 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "41ee0761-4516-4501-ad52-70dd82510bf3", "kg2u-aUyisg", false, 1227, false, "https://www.youtube.com/watch?v=kg2u-aUyisg", 101, "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", false, false, 3, [], 1, ~U[2026-09-10 14:00:09Z], ~U[2026-10-16 20:23:39Z], ~U[2026-10-16 20:23:39Z], "I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "kg2u-aUyisg", 1227, false, "https://www.youtube.com/watch?v=kg2u-aUyisg", "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", false, 3, ~U[2026-09-10 14:00:09Z]] 22:23:39.344 [debug] QUERY OK source="sources" db=0.2ms idle=787.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:39.345 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:39.345 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [237089] 22:23:39.345 [debug] Current batch of media processed. Will check again in 1000ms 22:23:40.346 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1322, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", "id" => "bOCzjIQs9r0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bOCzjIQs9r0", "playlist_index" => 102, "timestamp" => 1789653608, "title" => "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "upload_date" => "20260917"} 22:23:40.347 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:40.347 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:40.348 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-17 14:00:08Z], 3] 22:23:40.350 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "55fcd545-11dd-4167-8a3a-518a90681e34", "bOCzjIQs9r0", false, 1322, false, "https://www.youtube.com/watch?v=bOCzjIQs9r0", 102, "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", false, false, 3, [], 1, ~U[2026-09-17 14:00:08Z], ~U[2026-10-16 20:23:40Z], ~U[2026-10-16 20:23:40Z], "I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "bOCzjIQs9r0", 1322, false, "https://www.youtube.com/watch?v=bOCzjIQs9r0", "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", false, 3, ~U[2026-09-17 14:00:08Z]] 22:23:40.350 [debug] QUERY OK source="sources" db=0.1ms idle=791.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:40.350 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:40.351 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [240776] 22:23:40.351 [debug] Current batch of media processed. Will check again in 1000ms 22:23:41.352 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1721, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", "id" => "j38sPZsOlqk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=j38sPZsOlqk", "playlist_index" => 103, "timestamp" => 1790258405, "title" => "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "upload_date" => "20260924"} 22:23:41.353 [debug] QUERY OK source="sources" db=0.2ms queue=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:41.354 [debug] QUERY OK source="sources" db=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:41.354 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-24 14:00:05Z], 3] 22:23:41.356 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "a4e8607e-8dfb-43d9-86eb-bab420d07bb4", "j38sPZsOlqk", false, 1721, false, "https://www.youtube.com/watch?v=j38sPZsOlqk", 103, "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", false, false, 3, [], 1, ~U[2026-09-24 14:00:05Z], ~U[2026-10-16 20:23:41Z], ~U[2026-10-16 20:23:41Z], "I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "j38sPZsOlqk", 1721, false, "https://www.youtube.com/watch?v=j38sPZsOlqk", "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", false, 3, ~U[2026-09-24 14:00:05Z]] 22:23:41.356 [debug] QUERY OK source="sources" db=0.1ms idle=797.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:41.357 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:41.357 [debug] QUERY OK source="media_items" db=0.3ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [244694] 22:23:41.358 [debug] Current batch of media processed. Will check again in 1000ms 22:23:42.358 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1578, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", "id" => "_I53PIcgfQw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_I53PIcgfQw", "playlist_index" => 104, "timestamp" => 1790863217, "title" => "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "upload_date" => "20261001"} 22:23:42.359 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:42.360 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:42.360 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-01 14:00:17Z], 3] 22:23:42.362 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "078322a7-1823-454b-ac1b-cbecad13c86a", "_I53PIcgfQw", false, 1578, false, "https://www.youtube.com/watch?v=_I53PIcgfQw", 104, "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", false, false, 3, [], 1, ~U[2026-10-01 14:00:17Z], ~U[2026-10-16 20:23:42Z], ~U[2026-10-16 20:23:42Z], "I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "_I53PIcgfQw", 1578, false, "https://www.youtube.com/watch?v=_I53PIcgfQw", "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", false, 3, ~U[2026-10-01 14:00:17Z]] 22:23:42.362 [debug] QUERY OK source="sources" db=0.1ms idle=802.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:42.363 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:42.363 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [248507] 22:23:42.363 [debug] Current batch of media processed. Will check again in 1000ms 22:23:43.150 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLQJc0AKwP-an6_0X-ZX9pzXAHn5pQXqTd --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/shows/Livet på gården/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/5c/c8/5cc8ee3f58f4ff90144d1e62761c984a41d5fd0bb99e50d51c45696d04b7a38b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:23:43.153 [debug] Gracefully stopping file follower 22:23:43.153 [debug] QUERY OK source="sources" db=0.2ms idle=791.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 22:23:43.154 [debug] QUERY OK source="sources" db=0.2ms idle=791.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.155 [debug] QUERY OK source="media_items" db=0.5ms idle=791.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-09 08:00:00Z], 3] 22:23:43.156 [debug] QUERY OK source="media_items" db=0.8ms idle=792.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "2a7e3dd3-23bc-4a1e-9134-13a9476cabc7", "0HQ2lA9SaEw", false, 1584, false, "https://www.youtube.com/watch?v=0HQ2lA9SaEw", 1, "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", false, false, 3, [], 1, ~U[2024-05-09 08:00:00Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "0HQ2lA9SaEw", 1584, false, "https://www.youtube.com/watch?v=0HQ2lA9SaEw", "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", false, 3, ~U[2024-05-09 08:00:00Z]] 22:23:43.157 [debug] QUERY OK source="sources" db=0.1ms idle=595.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.157 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-16 14:00:32Z], 3] 22:23:43.159 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får en hundehvalp | Livet på gården Ep. 2", "313c279c-d424-418d-a4db-2f7e93e5a550", "TsAkJcpR_Io", false, 1514, false, "https://www.youtube.com/watch?v=TsAkJcpR_Io", 2, "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", false, false, 3, [], 1, ~U[2024-05-16 14:00:32Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får en hundehvalp | Livet på gården Ep. 2", "TsAkJcpR_Io", 1514, false, "https://www.youtube.com/watch?v=TsAkJcpR_Io", "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", false, 3, ~U[2024-05-16 14:00:32Z]] 22:23:43.159 [debug] QUERY OK source="sources" db=0.3ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.160 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-23 14:00:44Z], 3] 22:23:43.161 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi graver ud i huset | Livet på gården Ep.3", "85a69008-a2e3-4ee9-aa93-ec927abfb45a", "mzYiI1eVSe8", false, 1483, false, "https://www.youtube.com/watch?v=mzYiI1eVSe8", 3, "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", false, false, 3, [], 1, ~U[2024-05-23 14:00:44Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi graver ud i huset | Livet på gården Ep.3", "mzYiI1eVSe8", 1483, false, "https://www.youtube.com/watch?v=mzYiI1eVSe8", "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", false, 3, ~U[2024-05-23 14:00:44Z]] 22:23:43.162 [debug] QUERY OK source="sources" db=0.3ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.163 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-30 14:00:02Z], 3] 22:23:43.164 [debug] QUERY OK source="media_items" db=0.7ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "En hest i stuen og døde høns | Livet på gården Ep. 4", "1c039e92-9768-4f60-aab3-9ccf8814e582", "0jEgoy_T4E4", false, 2520, false, "https://www.youtube.com/watch?v=0jEgoy_T4E4", 4, "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", false, false, 3, [], 1, ~U[2024-05-30 14:00:02Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "En hest i stuen og døde høns | Livet på gården Ep. 4", "0jEgoy_T4E4", 2520, false, "https://www.youtube.com/watch?v=0jEgoy_T4E4", "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", false, 3, ~U[2024-05-30 14:00:02Z]] 22:23:43.164 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.165 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-06 14:00:57Z], 3] 22:23:43.166 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får kyllinger og køkken | Livet på gården Ep.5", "b2a3e0a2-71a7-432f-b486-7b1f1c54e49a", "w_MEeum-cxQ", false, 2357, false, "https://www.youtube.com/watch?v=w_MEeum-cxQ", 5, "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", false, false, 3, [], 1, ~U[2024-06-06 14:00:57Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får kyllinger og køkken | Livet på gården Ep.5", "w_MEeum-cxQ", 2357, false, "https://www.youtube.com/watch?v=w_MEeum-cxQ", "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", false, 3, ~U[2024-06-06 14:00:57Z]] 22:23:43.167 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.167 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-13 14:00:14Z], 3] 22:23:43.169 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "c852d7d5-e961-47f7-b92a-088a2eb0aa3d", "LgpqgWbzuiM", false, 1911, false, "https://www.youtube.com/watch?v=LgpqgWbzuiM", 6, "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", false, false, 3, [], 1, ~U[2024-06-13 14:00:14Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "LgpqgWbzuiM", 1911, false, "https://www.youtube.com/watch?v=LgpqgWbzuiM", "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", false, 3, ~U[2024-06-13 14:00:14Z]] 22:23:43.169 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.170 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-20 14:00:44Z], 3] 22:23:43.172 [debug] QUERY OK source="media_items" db=2.2ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vores heste stikker af | Livet på gården Ep. 7", "be362b58-7e92-4abb-928f-dbf6f8f20ead", "tPMYODqzWfI", false, 1808, false, "https://www.youtube.com/watch?v=tPMYODqzWfI", 7, "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", false, false, 3, [], 1, ~U[2024-06-20 14:00:44Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vores heste stikker af | Livet på gården Ep. 7", "tPMYODqzWfI", 1808, false, "https://www.youtube.com/watch?v=tPMYODqzWfI", "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", false, 3, ~U[2024-06-20 14:00:44Z]] 22:23:43.173 [debug] QUERY OK source="sources" db=0.2ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.174 [debug] QUERY OK source="media_items" db=0.4ms idle=4.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-27 14:00:03Z], 3] 22:23:43.175 [debug] QUERY OK source="media_items" db=0.7ms idle=4.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "71c5a8a7-23fe-4dd8-bd48-764815f4c4d6", "5w4Zkb-V2fE", false, 2043, false, "https://www.youtube.com/watch?v=5w4Zkb-V2fE", 8, "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", false, false, 3, [], 1, ~U[2024-06-27 14:00:03Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "5w4Zkb-V2fE", 2043, false, "https://www.youtube.com/watch?v=5w4Zkb-V2fE", "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", false, 3, ~U[2024-06-27 14:00:03Z]] 22:23:43.175 [debug] QUERY OK source="sources" db=0.2ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.176 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-04 14:00:14Z], 3] 22:23:43.177 [debug] QUERY OK source="media_items" db=0.6ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "House tour | Livet på gården Ep. 9", "206703a4-7a93-428e-8bbb-b4bfb31472fd", "KotEK3OaF80", false, 2059, false, "https://www.youtube.com/watch?v=KotEK3OaF80", 9, "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", false, false, 3, [], 1, ~U[2024-07-04 14:00:14Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "House tour | Livet på gården Ep. 9", "KotEK3OaF80", 2059, false, "https://www.youtube.com/watch?v=KotEK3OaF80", "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", false, 3, ~U[2024-07-04 14:00:14Z]] 22:23:43.178 [debug] QUERY OK source="sources" db=0.1ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.178 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-18 14:00:09Z], 3] 22:23:43.180 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Måren har dræbt vores høns | Livet på gården Ep. 10", "048a854c-6747-4acc-9068-516757402d73", "ACbhu-bCkCs", false, 1462, false, "https://www.youtube.com/watch?v=ACbhu-bCkCs", 10, "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", false, false, 3, [], 1, ~U[2024-07-18 14:00:09Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Måren har dræbt vores høns | Livet på gården Ep. 10", "ACbhu-bCkCs", 1462, false, "https://www.youtube.com/watch?v=ACbhu-bCkCs", "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", false, 3, ~U[2024-07-18 14:00:09Z]] 22:23:43.180 [debug] QUERY OK source="sources" db=0.1ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.181 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-25 14:00:21Z], 3] 22:23:43.182 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nye høns og havearbejde | Livet på gården Ep. 11", "d997ec34-cfd4-4e66-8265-5f9e2f15220d", "Sk2CUC0pUsw", false, 1666, false, "https://www.youtube.com/watch?v=Sk2CUC0pUsw", 11, "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", false, false, 3, [], 1, ~U[2024-07-25 14:00:21Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nye høns og havearbejde | Livet på gården Ep. 11", "Sk2CUC0pUsw", 1666, false, "https://www.youtube.com/watch?v=Sk2CUC0pUsw", "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", false, 3, ~U[2024-07-25 14:00:21Z]] 22:23:43.182 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.183 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-01 14:00:42Z], 3] 22:23:43.184 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Heste og højbede | Livet på gården Ep. 12", "92221c5d-9b20-457a-9496-aaa813b74d4d", "npE-BTzFMWc", false, 1747, false, "https://www.youtube.com/watch?v=npE-BTzFMWc", 12, "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", false, false, 3, [], 1, ~U[2024-08-01 14:00:42Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Heste og højbede | Livet på gården Ep. 12", "npE-BTzFMWc", 1747, false, "https://www.youtube.com/watch?v=npE-BTzFMWc", "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", false, 3, ~U[2024-08-01 14:00:42Z]] 22:23:43.185 [debug] QUERY OK source="sources" db=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.185 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-08 14:00:44Z], 3] 22:23:43.186 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "0f242bb8-25d6-4574-af78-2b8133c4d689", "mBkf-1EFsdE", false, 1645, false, "https://www.youtube.com/watch?v=mBkf-1EFsdE", 13, "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", false, false, 3, [], 1, ~U[2024-08-08 14:00:44Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "mBkf-1EFsdE", 1645, false, "https://www.youtube.com/watch?v=mBkf-1EFsdE", "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", false, 3, ~U[2024-08-08 14:00:44Z]] 22:23:43.187 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.188 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-15 14:00:16Z], 3] 22:23:43.189 [debug] QUERY OK source="media_items" db=0.6ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "23ee5680-abd7-4e62-ab3d-a523aca305b9", "EKIo-bTmT5I", false, 1651, false, "https://www.youtube.com/watch?v=EKIo-bTmT5I", 14, "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", false, false, 3, [], 1, ~U[2024-08-15 14:00:16Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "EKIo-bTmT5I", 1651, false, "https://www.youtube.com/watch?v=EKIo-bTmT5I", "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", false, 3, ~U[2024-08-15 14:00:16Z]] 22:23:43.189 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.190 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-22 14:00:53Z], 3] 22:23:43.191 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Diagnose og dræbersnegle | Livet på gården Ep. 15", "b5da3064-5cf8-4cb8-8dd8-bef9adc3f53d", "tVgdZ9ycitU", false, 1505, false, "https://www.youtube.com/watch?v=tVgdZ9ycitU", 15, "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", false, false, 3, [], 1, ~U[2024-08-22 14:00:53Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Diagnose og dræbersnegle | Livet på gården Ep. 15", "tVgdZ9ycitU", 1505, false, "https://www.youtube.com/watch?v=tVgdZ9ycitU", "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", false, 3, ~U[2024-08-22 14:00:53Z]] 22:23:43.191 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.192 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-29 14:00:26Z], 3] 22:23:43.193 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "a69af54e-8d48-4a34-8265-eda5814b140d", "X-mJfUiB8oE", false, 1871, false, "https://www.youtube.com/watch?v=X-mJfUiB8oE", 16, "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", false, false, 3, [], 1, ~U[2024-08-29 14:00:26Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "X-mJfUiB8oE", 1871, false, "https://www.youtube.com/watch?v=X-mJfUiB8oE", "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", false, 3, ~U[2024-08-29 14:00:26Z]] 22:23:43.194 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.194 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-19 14:00:08Z], 3] 22:23:43.196 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "8640e5a4-cedf-42c8-a415-83b95598d791", "ACPmnpI3fvU", false, 1643, false, "https://www.youtube.com/watch?v=ACPmnpI3fvU", 17, "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", false, false, 3, [], 1, ~U[2024-09-19 14:00:08Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "ACPmnpI3fvU", 1643, false, "https://www.youtube.com/watch?v=ACPmnpI3fvU", "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", false, 3, ~U[2024-09-19 14:00:08Z]] 22:23:43.196 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.197 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-12 14:01:03Z], 3] 22:23:43.215 [debug] QUERY OK source="media_items" db=17.9ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "b9d0996c-e4d6-4887-9391-cd3f1b7bc730", "yzoiqawrf90", false, 1387, false, "https://www.youtube.com/watch?v=yzoiqawrf90", 18, "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", false, false, 3, [], 1, ~U[2024-09-12 14:01:03Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "yzoiqawrf90", 1387, false, "https://www.youtube.com/watch?v=yzoiqawrf90", "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", false, 3, ~U[2024-09-12 14:01:03Z]] 22:23:43.216 [debug] QUERY OK source="sources" db=0.2ms idle=21.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.217 [debug] QUERY OK source="media_items" db=0.4ms idle=20.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-03 14:00:34Z], 3] 22:23:43.222 [debug] QUERY OK source="media_items" db=5.0ms idle=20.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En hel dag på dyreinternat | Livet på gården Ep. 21", "aea27544-beed-4df7-bb34-d994b9bd234f", "UlJfAh2C0fE", false, 1742, false, "https://www.youtube.com/watch?v=UlJfAh2C0fE", 19, "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", false, false, 3, [], 1, ~U[2024-10-03 14:00:34Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En hel dag på dyreinternat | Livet på gården Ep. 21", "UlJfAh2C0fE", 1742, false, "https://www.youtube.com/watch?v=UlJfAh2C0fE", "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", false, 3, ~U[2024-10-03 14:00:34Z]] 22:23:43.223 [debug] QUERY OK source="sources" db=0.4ms idle=25.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.224 [debug] QUERY OK source="media_items" db=0.8ms idle=8.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-10 14:00:09Z], 3] 22:23:43.225 [debug] QUERY OK source="media_items" db=0.7ms idle=8.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "94956532-a891-4215-9181-e59a1c153b8d", "5fUjlgO0xVU", false, 1514, false, "https://www.youtube.com/watch?v=5fUjlgO0xVU", 20, "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", false, false, 3, [], 1, ~U[2024-10-10 14:00:09Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "5fUjlgO0xVU", 1514, false, "https://www.youtube.com/watch?v=5fUjlgO0xVU", "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", false, 3, ~U[2024-10-10 14:00:09Z]] 22:23:43.226 [debug] QUERY OK source="sources" db=0.2ms idle=8.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.227 [debug] QUERY OK source="media_items" db=0.4ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-17 14:00:04Z], 3] 22:23:43.228 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "651c92eb-c789-4b4b-99dd-c0c5e47e589b", "1FSZw5q8Zaw", false, 1892, false, "https://www.youtube.com/watch?v=1FSZw5q8Zaw", 21, "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", false, false, 3, [], 1, ~U[2024-10-17 14:00:04Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "1FSZw5q8Zaw", 1892, false, "https://www.youtube.com/watch?v=1FSZw5q8Zaw", "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", false, 3, ~U[2024-10-17 14:00:04Z]] 22:23:43.228 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.229 [debug] QUERY OK source="media_items" db=0.5ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-24 14:00:05Z], 3] 22:23:43.232 [debug] QUERY OK source="media_items" db=2.3ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "e2272608-bee1-49d0-abd8-68e75235d8da", "6vrGogQTGw8", false, 2101, false, "https://www.youtube.com/watch?v=6vrGogQTGw8", 22, "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", false, false, 3, [], 1, ~U[2024-10-24 14:00:05Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "6vrGogQTGw8", 2101, false, "https://www.youtube.com/watch?v=6vrGogQTGw8", "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", false, 3, ~U[2024-10-24 14:00:05Z]] 22:23:43.233 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.234 [debug] QUERY OK source="media_items" db=0.5ms idle=5.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-26 14:57:22Z], 3] 22:23:43.236 [debug] QUERY OK source="media_items" db=1.8ms idle=5.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "9ffee39c-8230-42d1-a5fc-668e8bfcbe31", "fszG4EUNQSw", false, 1195, false, "https://www.youtube.com/watch?v=fszG4EUNQSw", 23, "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", false, false, 3, [], 1, ~U[2024-10-26 14:57:22Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "fszG4EUNQSw", 1195, false, "https://www.youtube.com/watch?v=fszG4EUNQSw", "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", false, 3, ~U[2024-10-26 14:57:22Z]] 22:23:43.237 [debug] QUERY OK source="sources" db=0.3ms idle=7.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.237 [debug] QUERY OK source="media_items" db=0.5ms idle=5.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-31 15:01:02Z], 3] 22:23:43.239 [debug] QUERY OK source="media_items" db=0.7ms idle=5.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "5fefe9ae-1a06-477c-9ae2-c221e575686b", "knLNbZN-U8I", false, 845, false, "https://www.youtube.com/watch?v=knLNbZN-U8I", 24, "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", false, false, 3, [], 1, ~U[2024-10-31 15:01:02Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "knLNbZN-U8I", 845, false, "https://www.youtube.com/watch?v=knLNbZN-U8I", "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", false, 3, ~U[2024-10-31 15:01:02Z]] 22:23:43.240 [debug] QUERY OK source="sources" db=0.2ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.240 [debug] QUERY OK source="media_items" db=0.5ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-07 15:00:19Z], 3] 22:23:43.242 [debug] QUERY OK source="media_items" db=0.7ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "12712453-46e0-463f-9d6e-5f9b1fb49a82", "JyiMi5ofXPw", false, 1621, false, "https://www.youtube.com/watch?v=JyiMi5ofXPw", 25, "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", false, false, 3, [], 1, ~U[2024-11-07 15:00:19Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "JyiMi5ofXPw", 1621, false, "https://www.youtube.com/watch?v=JyiMi5ofXPw", "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", false, 3, ~U[2024-11-07 15:00:19Z]] 22:23:43.242 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.243 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-14 15:00:51Z], 3] 22:23:43.244 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Døde grise og kæmpe krise | Livet på gården Ep. 28", "45c876a2-6ddc-4f5b-ae3c-0a31fcb81d22", "jEs2qt9f4cQ", false, 1506, false, "https://www.youtube.com/watch?v=jEs2qt9f4cQ", 26, "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", false, false, 3, [], 1, ~U[2024-11-14 15:00:51Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Døde grise og kæmpe krise | Livet på gården Ep. 28", "jEs2qt9f4cQ", 1506, false, "https://www.youtube.com/watch?v=jEs2qt9f4cQ", "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", false, 3, ~U[2024-11-14 15:00:51Z]] 22:23:43.244 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.245 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-21 15:00:26Z], 3] 22:23:43.246 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "3e7d503a-2fd0-4616-8af9-e2541a5cb7a9", "RfFqKyedfAE", false, 1529, false, "https://www.youtube.com/watch?v=RfFqKyedfAE", 27, "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", false, false, 3, [], 1, ~U[2024-11-21 15:00:26Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "RfFqKyedfAE", 1529, false, "https://www.youtube.com/watch?v=RfFqKyedfAE", "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", false, 3, ~U[2024-11-21 15:00:26Z]] 22:23:43.247 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.247 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-28 15:00:36Z], 3] 22:23:43.249 [debug] QUERY OK source="media_items" db=0.8ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "8a4083fe-4c90-412f-ab2b-fb2cdad2b825", "X73rI43iuD4", false, 1708, false, "https://www.youtube.com/watch?v=X73rI43iuD4", 28, "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", false, false, 3, [], 1, ~U[2024-11-28 15:00:36Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "X73rI43iuD4", 1708, false, "https://www.youtube.com/watch?v=X73rI43iuD4", "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", false, 3, ~U[2024-11-28 15:00:36Z]] 22:23:43.249 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.250 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-02 15:00:53Z], 3] 22:23:43.251 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores grise stikker af | Livet på gården Ep. 31", "e3256148-5b4c-4046-98fb-a97ca6668df2", "mdvG-5UJYRw", false, 1586, false, "https://www.youtube.com/watch?v=mdvG-5UJYRw", 29, "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", false, false, 3, [], 1, ~U[2025-01-02 15:00:53Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores grise stikker af | Livet på gården Ep. 31", "mdvG-5UJYRw", 1586, false, "https://www.youtube.com/watch?v=mdvG-5UJYRw", "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", false, 3, ~U[2025-01-02 15:00:53Z]] 22:23:43.252 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.252 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-09 15:01:02Z], 3] 22:23:43.254 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "36d64623-6445-4ef7-8643-ef148c28f3df", "in68bPvRI18", false, 1189, false, "https://www.youtube.com/watch?v=in68bPvRI18", 30, "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", false, false, 3, [], 1, ~U[2025-01-09 15:01:02Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "in68bPvRI18", 1189, false, "https://www.youtube.com/watch?v=in68bPvRI18", "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", false, 3, ~U[2025-01-09 15:01:02Z]] 22:23:43.254 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.255 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-16 15:00:13Z], 3] 22:23:43.256 [debug] QUERY OK source="media_items" db=0.9ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "cb044a32-83b9-444d-bf16-e82fdf9d4e31", "7eqGNG6x48o", false, 1320, false, "https://www.youtube.com/watch?v=7eqGNG6x48o", 31, "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", false, false, 3, [], 1, ~U[2025-01-16 15:00:13Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "7eqGNG6x48o", 1320, false, "https://www.youtube.com/watch?v=7eqGNG6x48o", "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", false, 3, ~U[2025-01-16 15:00:13Z]] 22:23:43.257 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.257 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-23 15:00:14Z], 3] 22:23:43.259 [debug] QUERY OK source="media_items" db=0.7ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "0a63a7ac-2d75-4828-8dda-9da4c8d0e079", "DHmTZSb2QAg", false, 1554, false, "https://www.youtube.com/watch?v=DHmTZSb2QAg", 32, "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", false, false, 3, [], 1, ~U[2025-01-23 15:00:14Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "DHmTZSb2QAg", 1554, false, "https://www.youtube.com/watch?v=DHmTZSb2QAg", "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", false, 3, ~U[2025-01-23 15:00:14Z]] 22:23:43.259 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.260 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-30 15:00:01Z], 3] 22:23:43.261 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny grisestald og babyhaul | Livet på gården Ep. 35", "a71dc34b-ae1f-428b-a397-80a468ed1667", "06C0dkPjHIU", false, 1577, false, "https://www.youtube.com/watch?v=06C0dkPjHIU", 33, "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", false, false, 3, [], 1, ~U[2025-01-30 15:00:01Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny grisestald og babyhaul | Livet på gården Ep. 35", "06C0dkPjHIU", 1577, false, "https://www.youtube.com/watch?v=06C0dkPjHIU", "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", false, 3, ~U[2025-01-30 15:00:01Z]] 22:23:43.261 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.262 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-06 15:00:15Z], 3] 22:23:43.263 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Pizzaaften og rottefangst | Livet på gården Ep. 36", "33ff8750-ff03-4b7a-a3f3-ca346fe469d9", "5VIOEvQa6qs", false, 1119, false, "https://www.youtube.com/watch?v=5VIOEvQa6qs", 34, "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", false, false, 3, [], 1, ~U[2025-02-06 15:00:15Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Pizzaaften og rottefangst | Livet på gården Ep. 36", "5VIOEvQa6qs", 1119, false, "https://www.youtube.com/watch?v=5VIOEvQa6qs", "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", false, 3, ~U[2025-02-06 15:00:15Z]] 22:23:43.264 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.264 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-13 15:00:15Z], 3] 22:23:43.266 [debug] QUERY OK source="media_items" db=0.9ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "ac99de1c-d9b1-40e2-9abc-409e7b17b294", "C4VNr3_SRjc", false, 964, false, "https://www.youtube.com/watch?v=C4VNr3_SRjc", 35, "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", false, false, 3, [], 1, ~U[2025-02-13 15:00:15Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "C4VNr3_SRjc", 964, false, "https://www.youtube.com/watch?v=C4VNr3_SRjc", "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", false, 3, ~U[2025-02-13 15:00:15Z]] 22:23:43.266 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.267 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-20 15:01:25Z], 3] 22:23:43.268 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "c8fe4ab1-ed28-40f0-b630-ca3dbe4cf655", "y7cv58JT-FI", false, 1364, false, "https://www.youtube.com/watch?v=y7cv58JT-FI", 36, "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", false, false, 3, [], 1, ~U[2025-02-20 15:01:25Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "y7cv58JT-FI", 1364, false, "https://www.youtube.com/watch?v=y7cv58JT-FI", "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", false, 3, ~U[2025-02-20 15:01:25Z]] 22:23:43.269 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.270 [debug] QUERY OK source="media_items" db=0.3ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-06 15:01:06Z], 3] 22:23:43.271 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "fcff39d0-5c12-476a-8a83-e48217187714", "lZWB5QR4wPQ", false, 1194, false, "https://www.youtube.com/watch?v=lZWB5QR4wPQ", 37, "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", false, false, 3, [], 1, ~U[2025-03-06 15:01:06Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "lZWB5QR4wPQ", 1194, false, "https://www.youtube.com/watch?v=lZWB5QR4wPQ", "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", false, 3, ~U[2025-03-06 15:01:06Z]] 22:23:43.271 [debug] QUERY OK source="sources" db=0.1ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.272 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-13 15:00:23Z], 3] 22:23:43.298 [debug] QUERY OK source="media_items" db=25.9ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "270c5485-d14b-458b-ae29-39a1394c51ab", "Ok2_GV07ZBQ", false, 1167, false, "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", 38, "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", false, false, 3, [], 1, ~U[2025-03-13 15:00:23Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "Ok2_GV07ZBQ", 1167, false, "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", false, 3, ~U[2025-03-13 15:00:23Z]] 22:23:43.299 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=29.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.300 [debug] QUERY OK source="media_items" db=0.4ms idle=28.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-08 14:00:48Z], 3] 22:23:43.301 [debug] QUERY OK source="media_items" db=0.8ms idle=28.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En baby og nesting mode | Livet på gården Ep. 41", "91d45557-716e-4bc1-81c1-bcf9720ed788", "_dr97qz8fXE", false, 1161, false, "https://www.youtube.com/watch?v=_dr97qz8fXE", 39, "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", false, false, 3, [], 1, ~U[2025-05-08 14:00:48Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En baby og nesting mode | Livet på gården Ep. 41", "_dr97qz8fXE", 1161, false, "https://www.youtube.com/watch?v=_dr97qz8fXE", "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", false, 3, ~U[2025-05-08 14:00:48Z]] 22:23:43.302 [debug] QUERY OK source="sources" db=0.2ms idle=29.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.302 [debug] QUERY OK source="media_items" db=0.5ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-15 14:00:49Z], 3] 22:23:43.304 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "c8211287-2e44-4d9c-8857-c240e95f3735", "XyfY9KQlii8", false, 1565, false, "https://www.youtube.com/watch?v=XyfY9KQlii8", 40, "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", false, false, 3, [], 1, ~U[2025-05-15 14:00:49Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "XyfY9KQlii8", 1565, false, "https://www.youtube.com/watch?v=XyfY9KQlii8", "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", false, 3, ~U[2025-05-15 14:00:49Z]] 22:23:43.304 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.305 [debug] QUERY OK source="media_items" db=0.3ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-22 14:00:14Z], 3] 22:23:43.306 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "a8018e1b-c73e-410b-957b-157b8b84c03b", "4lsBpblT134", false, 1220, false, "https://www.youtube.com/watch?v=4lsBpblT134", 41, "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", false, false, 3, [], 1, ~U[2025-05-22 14:00:14Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "4lsBpblT134", 1220, false, "https://www.youtube.com/watch?v=4lsBpblT134", "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", false, 3, ~U[2025-05-22 14:00:14Z]] 22:23:43.306 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.307 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-29 14:00:35Z], 3] 22:23:43.308 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Højgravid og et hus uden tag | Livet på gården Ep. 44", "c11868cc-278e-4225-b1bf-109c06aa0caa", "LwViuowDYFk", false, 1273, false, "https://www.youtube.com/watch?v=LwViuowDYFk", 42, "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", false, false, 3, [], 1, ~U[2025-05-29 14:00:35Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Højgravid og et hus uden tag | Livet på gården Ep. 44", "LwViuowDYFk", 1273, false, "https://www.youtube.com/watch?v=LwViuowDYFk", "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", false, 3, ~U[2025-05-29 14:00:35Z]] 22:23:43.309 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.309 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-05 14:00:41Z], 3] 22:23:43.311 [debug] QUERY OK source="media_items" db=0.8ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "16ef92f8-1ca2-4599-b009-e2e0e10b9db7", "QVFwXhDMin4", false, 1394, false, "https://www.youtube.com/watch?v=QVFwXhDMin4", 43, "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", false, false, 3, [], 1, ~U[2025-06-05 14:00:41Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "QVFwXhDMin4", 1394, false, "https://www.youtube.com/watch?v=QVFwXhDMin4", "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", false, 3, ~U[2025-06-05 14:00:41Z]] 22:23:43.311 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.312 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-12 14:00:00Z], 3] 22:23:43.313 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Når 2 bliver til 3 | Livet på gården Ep. 46", "440df528-9970-4e52-adb0-e4970cf54d95", "-rvS4KsyD-8", false, 1290, false, "https://www.youtube.com/watch?v=-rvS4KsyD-8", 44, "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", false, false, 3, [], 1, ~U[2025-06-12 14:00:00Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Når 2 bliver til 3 | Livet på gården Ep. 46", "-rvS4KsyD-8", 1290, false, "https://www.youtube.com/watch?v=-rvS4KsyD-8", "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", false, 3, ~U[2025-06-12 14:00:00Z]] 22:23:43.314 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.314 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-19 14:00:28Z], 3] 22:23:43.316 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "fee04630-6b48-47b4-a6b6-274968e04203", "L8u8ZcjpR6A", false, 1248, false, "https://www.youtube.com/watch?v=L8u8ZcjpR6A", 45, "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", false, false, 3, [], 1, ~U[2025-06-19 14:00:28Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "L8u8ZcjpR6A", 1248, false, "https://www.youtube.com/watch?v=L8u8ZcjpR6A", "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", false, 3, ~U[2025-06-19 14:00:28Z]] 22:23:43.316 [debug] QUERY OK source="sources" db=0.1ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.317 [debug] QUERY OK source="media_items" db=0.3ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-26 14:00:46Z], 3] 22:23:43.318 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "ec3faf89-fef3-455d-99ed-4ec8463094fe", "W_VQNTe2uV0", false, 885, false, "https://www.youtube.com/watch?v=W_VQNTe2uV0", 46, "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", false, false, 3, [], 1, ~U[2025-06-26 14:00:46Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "W_VQNTe2uV0", 885, false, "https://www.youtube.com/watch?v=W_VQNTe2uV0", "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", false, 3, ~U[2025-06-26 14:00:46Z]] 22:23:43.318 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.319 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-03 14:00:38Z], 3] 22:23:43.320 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tomater og byggemøde | Livet på gården Ep. 49", "d6d51015-670b-45cb-9449-f7e8e8e20ef8", "LOW7BsM3muw", false, 1455, false, "https://www.youtube.com/watch?v=LOW7BsM3muw", 47, "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", false, false, 3, [], 1, ~U[2025-07-03 14:00:38Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tomater og byggemøde | Livet på gården Ep. 49", "LOW7BsM3muw", 1455, false, "https://www.youtube.com/watch?v=LOW7BsM3muw", "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", false, 3, ~U[2025-07-03 14:00:38Z]] 22:23:43.321 [debug] QUERY OK source="sources" db=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.321 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-10 14:01:07Z], 3] 22:23:43.322 [debug] QUERY OK source="media_items" db=0.6ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "c78606c0-66d3-4627-aabc-e0888ab0dc7b", "eRwqESemLz0", false, 1048, false, "https://www.youtube.com/watch?v=eRwqESemLz0", 48, "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", false, false, 3, [], 1, ~U[2025-07-10 14:01:07Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "eRwqESemLz0", 1048, false, "https://www.youtube.com/watch?v=eRwqESemLz0", "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", false, 3, ~U[2025-07-10 14:01:07Z]] 22:23:43.323 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.324 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-17 14:00:37Z], 3] 22:23:43.325 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores datter er med i haven | Livet på gården Ep. 51", "8ef801fe-f5cb-4ab7-afc6-14f16c80bb4e", "N_QTztIN_uE", false, 1223, false, "https://www.youtube.com/watch?v=N_QTztIN_uE", 49, "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", false, false, 3, [], 1, ~U[2025-07-17 14:00:37Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores datter er med i haven | Livet på gården Ep. 51", "N_QTztIN_uE", 1223, false, "https://www.youtube.com/watch?v=N_QTztIN_uE", "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", false, 3, ~U[2025-07-17 14:00:37Z]] 22:23:43.325 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.326 [debug] QUERY OK source="media_items" db=0.5ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-14 14:00:17Z], 3] 22:23:43.327 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nyt tag på 3 dage | Livet på gården Ep. 52", "5a201e51-9ab5-4186-a136-1d8f6e515d44", "8KBS6AxLEhs", false, 1213, false, "https://www.youtube.com/watch?v=8KBS6AxLEhs", 50, "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", false, false, 3, [], 1, ~U[2025-08-14 14:00:17Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nyt tag på 3 dage | Livet på gården Ep. 52", "8KBS6AxLEhs", 1213, false, "https://www.youtube.com/watch?v=8KBS6AxLEhs", "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", false, 3, ~U[2025-08-14 14:00:17Z]] 22:23:43.328 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.328 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-21 14:01:25Z], 3] 22:23:43.329 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "91d4c8a5-d7b2-4cf1-8d03-e49cd2d2b09e", "xTCNmkJl7cs", false, 1195, false, "https://www.youtube.com/watch?v=xTCNmkJl7cs", 51, "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", false, false, 3, [], 1, ~U[2025-08-21 14:01:25Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "xTCNmkJl7cs", 1195, false, "https://www.youtube.com/watch?v=xTCNmkJl7cs", "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", false, 3, ~U[2025-08-21 14:01:25Z]] 22:23:43.330 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.330 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-28 14:00:46Z], 3] 22:23:43.332 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "7d8b9683-4d6e-4dee-bdbc-0c6460168fa6", "U_w3PIAVp40", false, 1652, false, "https://www.youtube.com/watch?v=U_w3PIAVp40", 52, "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", false, false, 3, [], 1, ~U[2025-08-28 14:00:46Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "U_w3PIAVp40", 1652, false, "https://www.youtube.com/watch?v=U_w3PIAVp40", "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", false, 3, ~U[2025-08-28 14:00:46Z]] 22:23:43.332 [debug] QUERY OK source="sources" db=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.333 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-07 14:01:23Z], 3] 22:23:43.334 [debug] QUERY OK source="media_items" db=0.6ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "2f5ff0d3-d45f-4579-a0ad-969054e62ea5", "oJHte_vjoV4", false, 1265, false, "https://www.youtube.com/watch?v=oJHte_vjoV4", 53, "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", false, false, 3, [], 1, ~U[2025-08-07 14:01:23Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "oJHte_vjoV4", 1265, false, "https://www.youtube.com/watch?v=oJHte_vjoV4", "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", false, 3, ~U[2025-08-07 14:01:23Z]] 22:23:43.334 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.335 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-04 14:01:08Z], 3] 22:23:43.338 [debug] QUERY OK source="media_items" db=2.2ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "0b613116-9c5a-4f7a-9450-911047145921", "gbe1EwOyOKY", false, 1396, false, "https://www.youtube.com/watch?v=gbe1EwOyOKY", 54, "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", false, false, 3, [], 1, ~U[2025-09-04 14:01:08Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "gbe1EwOyOKY", 1396, false, "https://www.youtube.com/watch?v=gbe1EwOyOKY", "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", false, 3, ~U[2025-09-04 14:01:08Z]] 22:23:43.338 [debug] QUERY OK source="sources" db=0.2ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.339 [debug] QUERY OK source="media_items" db=0.4ms idle=4.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 14:00:02Z], 3] 22:23:43.340 [debug] QUERY OK source="media_items" db=0.7ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "6d4aa0b6-bd85-454e-b60e-253a8ffc399c", "aPr93nvV6Sc", false, 1421, false, "https://www.youtube.com/watch?v=aPr93nvV6Sc", 55, "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", false, false, 3, [], 1, ~U[2025-09-11 14:00:02Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "aPr93nvV6Sc", 1421, false, "https://www.youtube.com/watch?v=aPr93nvV6Sc", "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", false, 3, ~U[2025-09-11 14:00:02Z]] 22:23:43.341 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.341 [debug] QUERY OK source="media_items" db=0.5ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-18 14:06:34Z], 3] 22:23:43.343 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "df39861f-c62e-498a-bd9c-a45a495a63bf", "lLuYcnLpHk8", false, 1020, false, "https://www.youtube.com/watch?v=lLuYcnLpHk8", 56, "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", false, false, 3, [], 1, ~U[2025-09-18 14:06:34Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "lLuYcnLpHk8", 1020, false, "https://www.youtube.com/watch?v=lLuYcnLpHk8", "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", false, 3, ~U[2025-09-18 14:06:34Z]] 22:23:43.343 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.344 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-25 14:01:33Z], 3] 22:23:43.345 [debug] QUERY OK source="media_items" db=0.9ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "86724a39-a2d0-4441-83bd-f92c1e9449cd", "rFwrB9Pe4hM", false, 1485, false, "https://www.youtube.com/watch?v=rFwrB9Pe4hM", 57, "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", false, false, 3, [], 1, ~U[2025-09-25 14:01:33Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "rFwrB9Pe4hM", 1485, false, "https://www.youtube.com/watch?v=rFwrB9Pe4hM", "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", false, 3, ~U[2025-09-25 14:01:33Z]] 22:23:43.346 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.346 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 14:01:32Z], 3] 22:23:43.348 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "af73afee-ac52-4d52-9ec1-471bd69c3a81", "uEP1rtTb-XE", false, 1641, false, "https://www.youtube.com/watch?v=uEP1rtTb-XE", 58, "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", false, false, 3, [], 1, ~U[2025-10-02 14:01:32Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "uEP1rtTb-XE", 1641, false, "https://www.youtube.com/watch?v=uEP1rtTb-XE", "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", false, 3, ~U[2025-10-02 14:01:32Z]] 22:23:43.348 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.349 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-09 14:01:15Z], 3] 22:23:43.350 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "f56128de-8dae-4121-be9d-238b8a9bac60", "mCkvhf9YDCk", false, 1534, false, "https://www.youtube.com/watch?v=mCkvhf9YDCk", 59, "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", false, false, 3, [], 1, ~U[2025-10-09 14:01:15Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "mCkvhf9YDCk", 1534, false, "https://www.youtube.com/watch?v=mCkvhf9YDCk", "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", false, 3, ~U[2025-10-09 14:01:15Z]] 22:23:43.351 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.351 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-16 14:00:35Z], 3] 22:23:43.353 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "d9e75bfa-f227-4611-9858-a050eaa3556e", "KMuFnD8X_To", false, 1491, false, "https://www.youtube.com/watch?v=KMuFnD8X_To", 60, "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", false, false, 3, [], 1, ~U[2025-10-16 14:00:35Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "KMuFnD8X_To", 1491, false, "https://www.youtube.com/watch?v=KMuFnD8X_To", "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", false, 3, ~U[2025-10-16 14:00:35Z]] 22:23:43.353 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.354 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 14:00:02Z], 3] 22:23:43.355 [debug] QUERY OK source="media_items" db=0.8ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi bygger et gyngestativ | Livet på gården Ep. 62", "f2d3c44a-1df7-4aed-af00-a9e28aa345ce", "aSbYAroNsjw", false, 1384, false, "https://www.youtube.com/watch?v=aSbYAroNsjw", 61, "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", false, false, 3, [], 1, ~U[2025-10-23 14:00:02Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi bygger et gyngestativ | Livet på gården Ep. 62", "aSbYAroNsjw", 1384, false, "https://www.youtube.com/watch?v=aSbYAroNsjw", "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", false, 3, ~U[2025-10-23 14:00:02Z]] 22:23:43.355 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.356 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 14:00:55Z], 3] 22:23:43.357 [debug] QUERY OK source="media_items" db=0.9ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "7b93fc76-f9cd-4f83-a4c3-42d0d555ce36", "_c08N8LDjq4", false, 1386, false, "https://www.youtube.com/watch?v=_c08N8LDjq4", 62, "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", false, false, 3, [], 1, ~U[2025-10-30 14:00:55Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "_c08N8LDjq4", 1386, false, "https://www.youtube.com/watch?v=_c08N8LDjq4", "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", false, 3, ~U[2025-10-30 14:00:55Z]] 22:23:43.358 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.358 [debug] QUERY OK source="media_items" db=0.3ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-06 14:00:48Z], 3] 22:23:43.371 [debug] QUERY OK source="media_items" db=12.3ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "e935b63c-d360-4a57-a1ef-0fa9ee54fd01", "NcSqbDLMJCo", false, 1699, false, "https://www.youtube.com/watch?v=NcSqbDLMJCo", 63, "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", false, false, 3, [], 1, ~U[2025-11-06 14:00:48Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "NcSqbDLMJCo", 1699, false, "https://www.youtube.com/watch?v=NcSqbDLMJCo", "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", false, 3, ~U[2025-11-06 14:00:48Z]] 22:23:43.372 [debug] QUERY OK source="sources" db=0.2ms idle=15.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.373 [debug] QUERY OK source="media_items" db=0.4ms idle=14.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-13 15:01:37Z], 3] 22:23:43.375 [debug] QUERY OK source="media_items" db=1.9ms idle=15.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "183cf13d-dff6-422a-8723-7af73ec74464", "bt4dqhzvEu0", false, 1312, false, "https://www.youtube.com/watch?v=bt4dqhzvEu0", 64, "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", false, false, 3, [], 1, ~U[2025-11-13 15:01:37Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "bt4dqhzvEu0", 1312, false, "https://www.youtube.com/watch?v=bt4dqhzvEu0", "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", false, 3, ~U[2025-11-13 15:01:37Z]] 22:23:43.376 [debug] QUERY OK source="sources" db=0.2ms idle=16.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.376 [debug] QUERY OK source="media_items" db=0.4ms idle=4.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-20 15:01:06Z], 3] 22:23:43.378 [debug] QUERY OK source="media_items" db=0.8ms idle=4.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "41d10127-9f22-49f9-8c91-732eb0c318ef", "XO87v1AxbWQ", false, 1694, false, "https://www.youtube.com/watch?v=XO87v1AxbWQ", 65, "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", false, false, 3, [], 1, ~U[2025-11-20 15:01:06Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "XO87v1AxbWQ", 1694, false, "https://www.youtube.com/watch?v=XO87v1AxbWQ", "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", false, 3, ~U[2025-11-20 15:01:06Z]] 22:23:43.378 [debug] QUERY OK source="sources" db=0.2ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.379 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-27 15:01:45Z], 3] 22:23:43.380 [debug] QUERY OK source="media_items" db=0.9ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "2c09880c-7862-4eb7-87f2-6f3e0882aa7b", "qDN2-yN1EkI", false, 1232, false, "https://www.youtube.com/watch?v=qDN2-yN1EkI", 66, "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", false, false, 3, [], 1, ~U[2025-11-27 15:01:45Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "qDN2-yN1EkI", 1232, false, "https://www.youtube.com/watch?v=qDN2-yN1EkI", "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", false, 3, ~U[2025-11-27 15:01:45Z]] 22:23:43.381 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.381 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 15:01:34Z], 3] 22:23:43.383 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "5eef7134-6e1c-4aa2-a80f-01e031d7499f", "kOicCYUbF9Y", false, 1620, false, "https://www.youtube.com/watch?v=kOicCYUbF9Y", 67, "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", false, false, 3, [], 1, ~U[2025-12-11 15:01:34Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "kOicCYUbF9Y", 1620, false, "https://www.youtube.com/watch?v=kOicCYUbF9Y", "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", false, 3, ~U[2025-12-11 15:01:34Z]] 22:23:43.383 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.384 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 15:00:08Z], 3] 22:23:43.385 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "5fc66adc-25d0-4fa1-9cf9-44b2bbb902bb", "49M-tMeNIb0", false, 1331, false, "https://www.youtube.com/watch?v=49M-tMeNIb0", 68, "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", false, false, 3, [], 1, ~U[2025-12-18 15:00:08Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "49M-tMeNIb0", 1331, false, "https://www.youtube.com/watch?v=49M-tMeNIb0", "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", false, 3, ~U[2025-12-18 15:00:08Z]] 22:23:43.386 [debug] QUERY OK source="sources" db=0.1ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.386 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-08 15:00:33Z], 3] 22:23:43.388 [debug] QUERY OK source="media_items" db=0.9ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "2b03e236-a20b-48f7-8bd5-e50c30d031a3", "EzliYAXWUnU", false, 1463, false, "https://www.youtube.com/watch?v=EzliYAXWUnU", 69, "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", false, false, 3, [], 1, ~U[2026-01-08 15:00:33Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "EzliYAXWUnU", 1463, false, "https://www.youtube.com/watch?v=EzliYAXWUnU", "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", false, 3, ~U[2026-01-08 15:00:33Z]] 22:23:43.388 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.389 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-15 15:00:57Z], 3] 22:23:43.392 [debug] QUERY OK source="media_items" db=2.7ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "a8d999db-255c-4a64-af13-0533a5247652", "W25cAiJgVl4", false, 1063, false, "https://www.youtube.com/watch?v=W25cAiJgVl4", 70, "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", false, false, 3, [], 1, ~U[2026-01-15 15:00:57Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "W25cAiJgVl4", 1063, false, "https://www.youtube.com/watch?v=W25cAiJgVl4", "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", false, 3, ~U[2026-01-15 15:00:57Z]] 22:23:43.393 [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" = ?) [3] 22:23:43.394 [debug] QUERY OK source="media_items" db=0.4ms idle=5.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-22 15:01:06Z], 3] 22:23:43.395 [debug] QUERY OK source="media_items" db=0.7ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "5b2c00a0-5711-4eba-8592-8c100556bbc1", "ZhpmiMpVyZw", false, 1312, false, "https://www.youtube.com/watch?v=ZhpmiMpVyZw", 71, "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", false, false, 3, [], 1, ~U[2026-01-22 15:01:06Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "ZhpmiMpVyZw", 1312, false, "https://www.youtube.com/watch?v=ZhpmiMpVyZw", "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", false, 3, ~U[2026-01-22 15:01:06Z]] 22:23:43.396 [debug] QUERY OK source="sources" db=0.2ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.396 [debug] QUERY OK source="media_items" db=0.4ms idle=3.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-29 15:01:22Z], 3] 22:23:43.398 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "525bb268-28a2-4494-94aa-d39a322decc1", "mJgxlMp3x34", false, 1476, false, "https://www.youtube.com/watch?v=mJgxlMp3x34", 72, "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", false, false, 3, [], 1, ~U[2026-01-29 15:01:22Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "mJgxlMp3x34", 1476, false, "https://www.youtube.com/watch?v=mJgxlMp3x34", "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", false, 3, ~U[2026-01-29 15:01:22Z]] 22:23:43.398 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.399 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-05 15:01:29Z], 3] 22:23:43.400 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "3452a549-9d44-4bb1-8fd5-7318741eadf8", "o4CgI8DjMPw", false, 1929, false, "https://www.youtube.com/watch?v=o4CgI8DjMPw", 73, "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", false, false, 3, [], 1, ~U[2026-02-05 15:01:29Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "o4CgI8DjMPw", 1929, false, "https://www.youtube.com/watch?v=o4CgI8DjMPw", "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", false, 3, ~U[2026-02-05 15:01:29Z]] 22:23:43.400 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.401 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-12 15:01:16Z], 3] 22:23:43.403 [debug] QUERY OK source="media_items" db=1.4ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "55f2d7ca-1275-4216-b70a-7ee7df975be2", "gZRnKqaiy3k", false, 1827, false, "https://www.youtube.com/watch?v=gZRnKqaiy3k", 74, "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", false, false, 3, [], 1, ~U[2026-02-12 15:01:16Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "gZRnKqaiy3k", 1827, false, "https://www.youtube.com/watch?v=gZRnKqaiy3k", "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", false, 3, ~U[2026-02-12 15:01:16Z]] 22:23:43.404 [debug] QUERY OK source="sources" db=0.2ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.404 [debug] QUERY OK source="media_items" db=0.4ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 15:01:02Z], 3] 22:23:43.405 [debug] QUERY OK source="media_items" db=0.7ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "7611db6e-ec06-49d9-9346-dedc6b4e29aa", "XPD5zoS3yLA", false, 1488, false, "https://www.youtube.com/watch?v=XPD5zoS3yLA", 75, "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", false, false, 3, [], 1, ~U[2026-02-19 15:01:02Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "XPD5zoS3yLA", 1488, false, "https://www.youtube.com/watch?v=XPD5zoS3yLA", "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", false, 3, ~U[2026-02-19 15:01:02Z]] 22:23:43.406 [debug] QUERY OK source="sources" db=0.1ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.407 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 15:00:51Z], 3] 22:23:43.408 [debug] QUERY OK source="media_items" db=0.9ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi har købt en 3D printer! | Livet på gården Ep. 78", "c571c6d7-8696-4760-9bf0-0b2db19ca8da", "Op8Tlzdn5eo", false, 1391, false, "https://www.youtube.com/watch?v=Op8Tlzdn5eo", 76, "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", false, false, 3, [], 1, ~U[2026-02-26 15:00:51Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi har købt en 3D printer! | Livet på gården Ep. 78", "Op8Tlzdn5eo", 1391, false, "https://www.youtube.com/watch?v=Op8Tlzdn5eo", "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", false, 3, ~U[2026-02-26 15:00:51Z]] 22:23:43.409 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.409 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-05 15:00:58Z], 3] 22:23:43.411 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "8185b69a-fc1b-43bb-af3d-ab11571d2539", "Th4fpPdHVU0", false, 1601, false, "https://www.youtube.com/watch?v=Th4fpPdHVU0", 77, "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", false, false, 3, [], 1, ~U[2026-03-05 15:00:58Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "Th4fpPdHVU0", 1601, false, "https://www.youtube.com/watch?v=Th4fpPdHVU0", "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", false, 3, ~U[2026-03-05 15:00:58Z]] 22:23:43.411 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.412 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 15:00:58Z], 3] 22:23:43.413 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "e1776fd9-0a3c-496a-a2f6-2f968d29b566", "WZAGvRqldgo", false, 1829, false, "https://www.youtube.com/watch?v=WZAGvRqldgo", 78, "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", false, false, 3, [], 1, ~U[2026-03-12 15:00:58Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "WZAGvRqldgo", 1829, false, "https://www.youtube.com/watch?v=WZAGvRqldgo", "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", false, 3, ~U[2026-03-12 15:00:58Z]] 22:23:43.414 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.414 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-19 15:01:40Z], 3] 22:23:43.416 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "e370134b-a2f7-4c32-a4f0-2c798f40df6c", "wvCb1ystnC0", false, 1440, false, "https://www.youtube.com/watch?v=wvCb1ystnC0", 79, "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", false, false, 3, [], 1, ~U[2026-03-19 15:01:40Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "wvCb1ystnC0", 1440, false, "https://www.youtube.com/watch?v=wvCb1ystnC0", "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", false, 3, ~U[2026-03-19 15:01:40Z]] 22:23:43.416 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.417 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 15:01:31Z], 3] 22:23:43.419 [debug] QUERY OK source="media_items" db=1.1ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "8d785d36-1e93-4e07-96a4-f9325d3270d6", "pxD1_Ax0eMI", false, 1393, false, "https://www.youtube.com/watch?v=pxD1_Ax0eMI", 80, "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", false, false, 3, [], 1, ~U[2026-03-26 15:01:31Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "pxD1_Ax0eMI", 1393, false, "https://www.youtube.com/watch?v=pxD1_Ax0eMI", "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", false, 3, ~U[2026-03-26 15:01:31Z]] 22:23:43.419 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.420 [debug] QUERY OK source="media_items" db=0.6ms idle=3.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 14:00:55Z], 3] 22:23:43.422 [debug] QUERY OK source="media_items" db=1.0ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "fc70cc53-3632-4084-8506-81b298ef3652", "dZk6prUzZkw", false, 1291, false, "https://www.youtube.com/watch?v=dZk6prUzZkw", 81, "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", false, false, 3, [], 1, ~U[2026-04-02 14:00:55Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "dZk6prUzZkw", 1291, false, "https://www.youtube.com/watch?v=dZk6prUzZkw", "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", false, 3, ~U[2026-04-02 14:00:55Z]] 22:23:43.422 [debug] QUERY OK source="sources" db=0.6ms idle=4.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.423 [debug] QUERY OK source="media_items" db=0.5ms idle=4.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 14:00:44Z], 3] 22:23:43.425 [debug] QUERY OK source="media_items" db=1.1ms idle=4.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "b7ce782b-8182-40f4-85c8-ce305c87c76d", "SIJsPP2BFVw", false, 1232, false, "https://www.youtube.com/watch?v=SIJsPP2BFVw", 82, "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", false, false, 3, [], 1, ~U[2026-04-16 14:00:44Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "SIJsPP2BFVw", 1232, false, "https://www.youtube.com/watch?v=SIJsPP2BFVw", "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", false, 3, ~U[2026-04-16 14:00:44Z]] 22:23:43.426 [debug] QUERY OK source="sources" db=0.6ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.427 [debug] QUERY OK source="media_items" db=0.6ms idle=4.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 14:01:00Z], 3] 22:23:43.428 [debug] QUERY OK source="media_items" db=1.0ms idle=4.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "80a86547-f9f5-4a6c-a669-3f23c95d8e31", "da0fXptSlUY", false, 1621, false, "https://www.youtube.com/watch?v=da0fXptSlUY", 83, "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", false, false, 3, [], 1, ~U[2026-04-23 14:01:00Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "da0fXptSlUY", 1621, false, "https://www.youtube.com/watch?v=da0fXptSlUY", "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", false, 3, ~U[2026-04-23 14:01:00Z]] 22:23:43.429 [debug] QUERY OK source="sources" db=0.6ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.430 [debug] QUERY OK source="media_items" db=0.6ms idle=4.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 14:01:00Z], 3] 22:23:43.431 [debug] QUERY OK source="media_items" db=1.1ms idle=4.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "1e3b6c1b-2e57-43fa-bfc5-4b1708671bc6", "UmaRjrKDD40", false, 1577, false, "https://www.youtube.com/watch?v=UmaRjrKDD40", 84, "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", false, false, 3, [], 1, ~U[2026-04-30 14:01:00Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "UmaRjrKDD40", 1577, false, "https://www.youtube.com/watch?v=UmaRjrKDD40", "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", false, 3, ~U[2026-04-30 14:01:00Z]] 22:23:43.433 [debug] QUERY OK source="sources" db=0.8ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.434 [debug] QUERY OK source="media_items" db=0.6ms idle=4.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-07 14:36:48Z], 3] 22:23:43.435 [debug] QUERY OK source="media_items" db=1.1ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "d3812cf8-063e-4313-8d0a-9edc7b9cad9f", "RJWBKBicq0Q", false, 1852, false, "https://www.youtube.com/watch?v=RJWBKBicq0Q", 85, "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", false, false, 3, [], 1, ~U[2026-05-07 14:36:48Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "RJWBKBicq0Q", 1852, false, "https://www.youtube.com/watch?v=RJWBKBicq0Q", "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", false, 3, ~U[2026-05-07 14:36:48Z]] 22:23:43.436 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [3] 22:23:43.436 [debug] QUERY OK source="media_items" db=0.4ms idle=4.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-14 14:00:49Z], 3] 22:23:43.438 [debug] QUERY OK source="media_items" db=0.9ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "a3901f2e-3dcd-4b79-9419-302289d2591f", "YXmL6qrY1G0", false, 1704, false, "https://www.youtube.com/watch?v=YXmL6qrY1G0", 86, "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", false, false, 3, [], 1, ~U[2026-05-14 14:00:49Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "YXmL6qrY1G0", 1704, false, "https://www.youtube.com/watch?v=YXmL6qrY1G0", "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", false, 3, ~U[2026-05-14 14:00:49Z]] 22:23:43.438 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.439 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-21 14:10:09Z], 3] 22:23:43.440 [debug] QUERY OK source="media_items" db=0.9ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "715c6659-7e4f-4a79-9a1c-608e045f4add", "7HdqBREGHtA", false, 2166, false, "https://www.youtube.com/watch?v=7HdqBREGHtA", 87, "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", false, false, 3, [], 1, ~U[2026-05-21 14:10:09Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "7HdqBREGHtA", 2166, false, "https://www.youtube.com/watch?v=7HdqBREGHtA", "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", false, 3, ~U[2026-05-21 14:10:09Z]] 22:23:43.441 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.441 [debug] QUERY OK source="media_items" db=0.3ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-28 14:00:38Z], 3] 22:23:43.443 [debug] QUERY OK source="media_items" db=1.0ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "d6961dec-fb6a-43f0-ba16-d02e6e38ef5a", "Ndtyto4SfDs", false, 1557, false, "https://www.youtube.com/watch?v=Ndtyto4SfDs", 88, "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", false, false, 3, [], 1, ~U[2026-05-28 14:00:38Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "Ndtyto4SfDs", 1557, false, "https://www.youtube.com/watch?v=Ndtyto4SfDs", "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", false, 3, ~U[2026-05-28 14:00:38Z]] 22:23:43.444 [debug] QUERY OK source="sources" db=0.4ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.445 [debug] QUERY OK source="media_items" db=0.6ms idle=3.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-04 14:00:03Z], 3] 22:23:43.446 [debug] QUERY OK source="media_items" db=0.9ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "adcc5ff4-a0e7-4c51-8093-d209b9de2466", "f16_HDKB4SQ", false, 1465, false, "https://www.youtube.com/watch?v=f16_HDKB4SQ", 89, "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", false, false, 3, [], 1, ~U[2026-06-04 14:00:03Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "f16_HDKB4SQ", 1465, false, "https://www.youtube.com/watch?v=f16_HDKB4SQ", "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", false, 3, ~U[2026-06-04 14:00:03Z]] 22:23:43.447 [debug] QUERY OK source="sources" db=0.2ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.447 [debug] QUERY OK source="media_items" db=0.4ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-11 14:00:34Z], 3] 22:23:43.451 [debug] QUERY OK source="media_items" db=2.9ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "795b3742-4ca3-45fe-a7ba-ed4006a19c22", "n93gXkFbEZc", false, 1786, false, "https://www.youtube.com/watch?v=n93gXkFbEZc", 90, "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", false, false, 3, [], 1, ~U[2026-06-11 14:00:34Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "n93gXkFbEZc", 1786, false, "https://www.youtube.com/watch?v=n93gXkFbEZc", "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", false, 3, ~U[2026-06-11 14:00:34Z]] 22:23:43.451 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [3] 22:23:43.452 [debug] QUERY OK source="media_items" db=0.4ms idle=5.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-18 14:00:30Z], 3] 22:23:43.453 [debug] QUERY OK source="media_items" db=0.9ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "c482a09c-d76a-4d61-85dc-046f8cc462d3", "PnawT2un6OQ", false, 1864, false, "https://www.youtube.com/watch?v=PnawT2un6OQ", 91, "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", false, false, 3, [], 1, ~U[2026-06-18 14:00:30Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "PnawT2un6OQ", 1864, false, "https://www.youtube.com/watch?v=PnawT2un6OQ", "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", false, 3, ~U[2026-06-18 14:00:30Z]] 22:23:43.454 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [3] 22:23:43.454 [debug] QUERY OK source="media_items" db=0.5ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-25 14:00:35Z], 3] 22:23:43.456 [debug] QUERY OK source="media_items" db=1.0ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En stor gave og keramikproduktion | Livet på gården Ep. 94", "b5b89f09-e49e-4d4d-b2c9-79fc4ede6161", "_yVgsAnBwjQ", false, 1619, false, "https://www.youtube.com/watch?v=_yVgsAnBwjQ", 92, "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", false, false, 3, [], 1, ~U[2026-06-25 14:00:35Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En stor gave og keramikproduktion | Livet på gården Ep. 94", "_yVgsAnBwjQ", 1619, false, "https://www.youtube.com/watch?v=_yVgsAnBwjQ", "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", false, 3, ~U[2026-06-25 14:00:35Z]] 22:23:43.457 [debug] QUERY OK source="sources" db=0.3ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.457 [debug] QUERY OK source="media_items" db=0.5ms idle=3.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-02 14:00:21Z], 3] 22:23:43.459 [debug] QUERY OK source="media_items" db=1.1ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "da035d0a-1335-4f6e-9109-14a2de86396e", "B_bPtvpGVx4", false, 1577, false, "https://www.youtube.com/watch?v=B_bPtvpGVx4", 93, "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", false, false, 3, [], 1, ~U[2026-07-02 14:00:21Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "B_bPtvpGVx4", 1577, false, "https://www.youtube.com/watch?v=B_bPtvpGVx4", "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", false, 3, ~U[2026-07-02 14:00:21Z]] 22:23:43.460 [debug] QUERY OK source="sources" db=0.4ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.461 [debug] QUERY OK source="media_items" db=0.5ms idle=4.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-09 14:00:16Z], 3] 22:23:43.462 [debug] QUERY OK source="media_items" db=1.0ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "77ea04b1-88ff-43ff-a8d5-37b7ff8a29e0", "DDVRQGOAxZs", false, 1588, false, "https://www.youtube.com/watch?v=DDVRQGOAxZs", 94, "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", false, false, 3, [], 1, ~U[2026-07-09 14:00:16Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "DDVRQGOAxZs", 1588, false, "https://www.youtube.com/watch?v=DDVRQGOAxZs", "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", false, 3, ~U[2026-07-09 14:00:16Z]] 22:23:43.463 [debug] QUERY OK source="sources" db=0.4ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.463 [debug] QUERY OK source="media_items" db=0.5ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-23 14:00:27Z], 3] 22:23:43.465 [debug] QUERY OK source="media_items" db=1.0ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "d07bd601-249a-48c0-9d9b-4fa2a790425f", "nVHF5b2mfcg", false, 2296, false, "https://www.youtube.com/watch?v=nVHF5b2mfcg", 95, "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", false, false, 3, [], 1, ~U[2026-07-23 14:00:27Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "nVHF5b2mfcg", 2296, false, "https://www.youtube.com/watch?v=nVHF5b2mfcg", "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", false, 3, ~U[2026-07-23 14:00:27Z]] 22:23:43.466 [debug] QUERY OK source="sources" db=0.2ms idle=4.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.466 [debug] QUERY OK source="media_items" db=0.5ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-30 14:00:02Z], 3] 22:23:43.468 [debug] QUERY OK source="media_items" db=0.9ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "7dc8795d-caf1-4ab7-bd90-231790c27e06", "ay_WnFmck9s", false, 1613, false, "https://www.youtube.com/watch?v=ay_WnFmck9s", 96, "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", false, false, 3, [], 1, ~U[2026-07-30 14:00:02Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "ay_WnFmck9s", 1613, false, "https://www.youtube.com/watch?v=ay_WnFmck9s", "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", false, 3, ~U[2026-07-30 14:00:02Z]] 22:23:43.468 [debug] QUERY OK source="sources" db=0.3ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.469 [debug] QUERY OK source="media_items" db=0.5ms idle=3.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-06 14:00:02Z], 3] 22:23:43.471 [debug] QUERY OK source="media_items" db=1.1ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "523ccd23-8a25-45e8-95d4-15992b2b4534", "hEbBs6J6HSM", false, 1593, false, "https://www.youtube.com/watch?v=hEbBs6J6HSM", 97, "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", false, false, 3, [], 1, ~U[2026-08-06 14:00:02Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "hEbBs6J6HSM", 1593, false, "https://www.youtube.com/watch?v=hEbBs6J6HSM", "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", false, 3, ~U[2026-08-06 14:00:02Z]] 22:23:43.472 [debug] QUERY OK source="sources" db=0.3ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.472 [debug] QUERY OK source="media_items" db=0.5ms idle=4.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-20 14:00:33Z], 3] 22:23:43.474 [debug] QUERY OK source="media_items" db=1.1ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "b7fd1867-afab-4810-b8ad-026e2bfb41ce", "s3kP8lEsOEQ", false, 2197, false, "https://www.youtube.com/watch?v=s3kP8lEsOEQ", 98, "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", false, false, 3, [], 1, ~U[2026-08-20 14:00:33Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "s3kP8lEsOEQ", 2197, false, "https://www.youtube.com/watch?v=s3kP8lEsOEQ", "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", false, 3, ~U[2026-08-20 14:00:33Z]] 22:23:43.475 [debug] QUERY OK source="sources" db=0.2ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.475 [debug] QUERY OK source="media_items" db=0.4ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-27 14:00:13Z], 3] 22:23:43.477 [debug] QUERY OK source="media_items" db=0.9ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Videre med renovering og nye høns! | Livet på gården Ep. 101", "447bd998-0901-4df8-86b0-0bcde3255408", "EPOSOFmeG0o", false, 1119, false, "https://www.youtube.com/watch?v=EPOSOFmeG0o", 99, "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", false, false, 3, [], 1, ~U[2026-08-27 14:00:13Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Videre med renovering og nye høns! | Livet på gården Ep. 101", "EPOSOFmeG0o", 1119, false, "https://www.youtube.com/watch?v=EPOSOFmeG0o", "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", false, 3, ~U[2026-08-27 14:00:13Z]] 22:23:43.477 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.478 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-03 14:00:22Z], 3] 22:23:43.479 [debug] QUERY OK source="media_items" db=0.9ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "70c7c7c5-ada6-48f8-af5b-daa90598a789", "X9r5hiSunVQ", false, 1288, false, "https://www.youtube.com/watch?v=X9r5hiSunVQ", 100, "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", false, false, 3, [], 1, ~U[2026-09-03 14:00:22Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "X9r5hiSunVQ", 1288, false, "https://www.youtube.com/watch?v=X9r5hiSunVQ", "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", false, 3, ~U[2026-09-03 14:00:22Z]] 22:23:43.480 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.480 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-10 14:00:09Z], 3] 22:23:43.482 [debug] QUERY OK source="media_items" db=0.9ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "d56aa240-93e2-48a5-8f41-04cc20b9e49d", "kg2u-aUyisg", false, 1227, false, "https://www.youtube.com/watch?v=kg2u-aUyisg", 101, "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", false, false, 3, [], 1, ~U[2026-09-10 14:00:09Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "kg2u-aUyisg", 1227, false, "https://www.youtube.com/watch?v=kg2u-aUyisg", "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", false, 3, ~U[2026-09-10 14:00:09Z]] 22:23:43.482 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.483 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-17 14:00:08Z], 3] 22:23:43.484 [debug] QUERY OK source="media_items" db=0.9ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "3043d781-3135-4e23-9ae2-eaa0713826f8", "bOCzjIQs9r0", false, 1322, false, "https://www.youtube.com/watch?v=bOCzjIQs9r0", 102, "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", false, false, 3, [], 1, ~U[2026-09-17 14:00:08Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "bOCzjIQs9r0", 1322, false, "https://www.youtube.com/watch?v=bOCzjIQs9r0", "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", false, 3, ~U[2026-09-17 14:00:08Z]] 22:23:43.485 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.486 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-24 14:00:05Z], 3] 22:23:43.487 [debug] QUERY OK source="media_items" db=0.9ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "b5a62b40-eb1b-45c5-8829-34fdbbce57d7", "j38sPZsOlqk", false, 1721, false, "https://www.youtube.com/watch?v=j38sPZsOlqk", 103, "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", false, false, 3, [], 1, ~U[2026-09-24 14:00:05Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "j38sPZsOlqk", 1721, false, "https://www.youtube.com/watch?v=j38sPZsOlqk", "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", false, 3, ~U[2026-09-24 14:00:05Z]] 22:23:43.488 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.488 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-01 14:00:17Z], 3] 22:23:43.495 [debug] QUERY OK source="media_items" db=6.2ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "7e7dc4a1-8522-49ed-8fef-3642999037c7", "_I53PIcgfQw", false, 1578, false, "https://www.youtube.com/watch?v=_I53PIcgfQw", 104, "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", false, false, 3, [], 1, ~U[2026-10-01 14:00:17Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "_I53PIcgfQw", 1578, false, "https://www.youtube.com/watch?v=_I53PIcgfQw", "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", false, 3, ~U[2026-10-01 14:00:17Z]] 22:23:43.496 [debug] QUERY OK source="sources" db=0.2ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 22:23:43.496 [debug] QUERY OK source="media_items" db=0.4ms idle=9.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-15 14:00:25Z], 3] 22:23:43.498 [debug] QUERY OK source="media_items" db=0.8ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er dagen endelig kommet hvor min søster starter hos mig og skal hjælpe mig med det ene og det andet - og vi starter ud med den helt store pakkestation efter keramiksalg. Felix er på besøg og ham og Mikkel hjælper med at samle mine nye keramikovn og så udvider de hønsegården så den bliver intet mindre end gigantisk. Julle overtager kameraet mens hun glasere kopper med sig selv og hvis man har tænkt: Hvordan går det egentlig med julle? SÅ får man besked her kan jeg sige jer. Vi får nærmest et TMI tag og jeg elsker det bare\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Min søsters første arbejdsdag og ny kæmpe hønsegård | Livet på gården Ep. 107", "d77e67fc-8f70-4611-aa64-e0ae3ed7bc49", "DGyRdwOrTqY", false, 1565, false, "https://www.youtube.com/watch?v=DGyRdwOrTqY", 105, "/downloads/shows/Livet på gården/Season 2026/s2026e101500 - Min søsters første arbejdsdag og ny kæmpe hønsegård | Livet på gården Ep. 107.mkv", false, false, 3, [], 1, ~U[2026-10-15 14:00:25Z], ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], "I dette afsnit er dagen endelig kommet hvor min søster starter hos mig og skal hjælpe mig med det ene og det andet - og vi starter ud med den helt store pakkestation efter keramiksalg. Felix er på besøg og ham og Mikkel hjælper med at samle mine nye keramikovn og så udvider de hønsegården så den bliver intet mindre end gigantisk. Julle overtager kameraet mens hun glasere kopper med sig selv og hvis man har tænkt: Hvordan går det egentlig med julle? SÅ får man besked her kan jeg sige jer. Vi får nærmest et TMI tag og jeg elsker det bare\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Min søsters første arbejdsdag og ny kæmpe hønsegård | Livet på gården Ep. 107", "DGyRdwOrTqY", 1565, false, "https://www.youtube.com/watch?v=DGyRdwOrTqY", "/downloads/shows/Livet på gården/Season 2026/s2026e101500 - Min søsters første arbejdsdag og ny kæmpe hønsegård | Livet på gården Ep. 107.mkv", false, 3, ~U[2026-10-15 14:00:25Z]] 22:23:43.498 [debug] QUERY OK source="sources" db=0.2ms idle=9.9ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z], 3] 22:23:43.499 [debug] QUERY OK source="media_items" db=0.6ms idle=3.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 22:23:43.500 [debug] QUERY OK source="media_items" db=0.5ms idle=3.9ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 22:23:43.501 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=3.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 22:23:43.502 [debug] QUERY OK source="tasks" db=0.1ms idle=2.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [6579, 3, ~U[2026-10-16 20:23:43Z], ~U[2026-10-16 20:23:43Z]] 22:23:43.502 [info] {"args":{"id":3},"id":6574,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":106053780,"event":"job:stop","queue_time":698043,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 22:23:59.316 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:24:00.223 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:24:29.317 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:24:59.318 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:25:00.224 [info] {"source":"oban","duration":232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:25:29.319 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:25:59.320 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:26:00.225 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:26:29.321 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:26:59.322 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:27:00.226 [info] {"source":"oban","duration":210,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:27:29.323 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:27:59.324 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:28:00.227 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:28:29.325 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:28:59.326 [info] {"source":"oban","duration":1460,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:29:00.228 [info] {"source":"oban","duration":267,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:29:29.328 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:29:59.329 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:30:00.229 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:30:29.330 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:30:59.331 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:31:00.230 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:31:29.332 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:31:59.333 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:32:00.231 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:32:29.334 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:32:59.335 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:33:00.232 [info] {"source":"oban","duration":155,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:33:29.336 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:33:59.337 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:34:00.233 [info] {"source":"oban","duration":104,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:34:29.338 [info] {"source":"oban","duration":606,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:34:59.339 [info] {"source":"oban","duration":592,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:35:00.234 [info] {"source":"oban","duration":224,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:35:29.340 [info] {"source":"oban","duration":495,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:35:59.341 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:36:00.235 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:36:29.342 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:36:59.343 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:37:00.236 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:37:29.344 [info] {"source":"oban","duration":867,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:37:59.346 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:38:00.237 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:38:29.347 [info] {"source":"oban","duration":789,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:38:59.348 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:39:00.238 [info] {"source":"oban","duration":315,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:39:29.349 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:39:59.350 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:40:00.239 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:40:29.351 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:40:59.352 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:41:00.240 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:41:29.353 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:41:59.354 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:42:00.241 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:42:29.355 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:42:59.356 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:43:00.242 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:43:29.358 [info] {"source":"oban","duration":1881,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:43:59.360 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:44:00.243 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:44:29.361 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:44:59.363 [info] {"source":"oban","duration":1738,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:45:00.244 [info] {"source":"oban","duration":339,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:45:29.364 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:45:59.365 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:46:00.245 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:46:29.366 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:46:59.367 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:47:00.246 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:47:29.368 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:47:59.369 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:48:00.247 [info] {"source":"oban","duration":163,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:48:29.370 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:48:59.371 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:49:00.248 [info] {"source":"oban","duration":122,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:49:29.372 [info] {"source":"oban","duration":580,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:49:34.977 [info] GET /sitemap.xml 22:49:34.979 [debug] QUERY OK source="settings" db=0.7ms idle=718.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:34.979 [debug] QUERY OK source="settings" db=0.1ms queue=0.2ms idle=404.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:34.979 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:34.980 [error] #PID<0.551626.0> running PinchflatWeb.Endpoint (connection #PID<0.551625.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.551625.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 44378}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4b9ee523ffac424-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.551626.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4b9ee523ffac424-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8dpd_Gam2bG0QAQXVB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.551625.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 44378}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4b9ee523ffac424-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.551625.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 44378}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4b9ee523ffac424-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.551626.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 22:49:59.373 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:50:00.249 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:50:29.374 [info] {"source":"oban","duration":491,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:50:59.375 [info] {"source":"oban","duration":516,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:51:00.250 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:51:29.376 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:51:59.377 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:52:00.251 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:52:29.378 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:52:59.379 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:53:00.252 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:53:29.380 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:53:59.381 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:54:00.253 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:54:29.382 [info] {"source":"oban","duration":806,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:54:59.383 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:55:00.254 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:55:29.384 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:55:59.385 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:56:00.255 [info] {"source":"oban","duration":341,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:56:29.386 [info] {"source":"oban","duration":737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:56:59.387 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:57:00.256 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:57:29.388 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:57:59.389 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:58:00.257 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:58:29.390 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:58:59.391 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:59:00.258 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:59:29.392 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:59:59.393 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:00:00.259 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:00:29.394 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:00:59.395 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:01:00.260 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:01:29.396 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:01:59.397 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:02:00.261 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:02:29.398 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:02:59.399 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:03:00.262 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:03:29.400 [info] {"source":"oban","duration":754,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:03:59.401 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:04:00.263 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:04:29.402 [info] {"source":"oban","duration":642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:04:59.403 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:05:00.264 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:05:29.404 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:05:59.405 [info] {"source":"oban","duration":597,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:06:00.265 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:06:29.406 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:06:59.407 [info] {"source":"oban","duration":547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:07:00.266 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:07:29.408 [info] {"source":"oban","duration":567,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:07:59.409 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:08:00.267 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:08:29.410 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:08:59.411 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:09:00.268 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:09:29.412 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:09:59.413 [info] {"source":"oban","duration":737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:10:00.269 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:10:29.414 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:10:59.415 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:11:00.270 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:11:29.416 [info] {"source":"oban","duration":783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:11:59.417 [info] {"source":"oban","duration":758,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:12:00.271 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:12:29.418 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:12:59.419 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:13:00.272 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:13:29.420 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:13:59.421 [info] {"source":"oban","duration":745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:14:00.273 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:14:29.422 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:14:59.423 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:15:00.274 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:15:29.424 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:15:59.425 [info] {"source":"oban","duration":737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:16:00.275 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:16:29.426 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:16:59.427 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:17:00.276 [info] {"source":"oban","duration":249,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:17:29.428 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:17:59.429 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:18:00.277 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:18:29.430 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:18:59.431 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:19:00.278 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:19:29.432 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:19:59.433 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:20:00.279 [info] {"source":"oban","duration":154,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:20:29.434 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:20:59.435 [info] {"source":"oban","duration":617,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:21:00.280 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:21:29.436 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:21:59.437 [info] {"source":"oban","duration":641,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:22:00.281 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:22:29.438 [info] {"source":"oban","duration":559,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:22:59.439 [info] {"source":"oban","duration":544,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:23:00.282 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:23:29.440 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:23:59.441 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:24:00.283 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:24:29.442 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:24:59.443 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:25:00.284 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:25:29.444 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:25:59.445 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:26:00.285 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:26:29.446 [info] {"source":"oban","duration":854,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:26:59.448 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:27:00.286 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:27:29.449 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:27:59.450 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:28:00.287 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:28:29.451 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:28:59.452 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:29:00.288 [info] {"source":"oban","duration":222,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:29:29.453 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:29:59.454 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:30:00.289 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:30:29.455 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:30:59.456 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:31:00.290 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:31:29.457 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:31:59.458 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:32:00.291 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:32:29.459 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:32:59.460 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:33:00.292 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:33:29.461 [info] {"source":"oban","duration":741,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:33:59.462 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:34:00.293 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:34:29.463 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:34:59.464 [info] {"source":"oban","duration":774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:35:00.294 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:35:29.465 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:35:59.466 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:36:00.295 [info] {"source":"oban","duration":121,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:36:29.467 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:36:59.468 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:37:00.296 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:37:29.469 [info] {"source":"oban","duration":1161,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:37:59.471 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:38:00.297 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:38:29.472 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:38:59.473 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:39:00.298 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:39:29.474 [info] {"source":"oban","duration":781,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:39:59.475 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:40:00.299 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:40:29.476 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:40:59.477 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:41:00.300 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:41:29.478 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:41:59.479 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:42:00.301 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:42:29.480 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:42:59.481 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:43:00.302 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:43:29.482 [info] {"source":"oban","duration":780,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:43:59.483 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:44:00.303 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:44:29.485 [info] {"source":"oban","duration":765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:44:59.486 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:45:00.304 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:45:29.487 [info] {"source":"oban","duration":772,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:45:59.489 [info] {"source":"oban","duration":1638,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:46:00.305 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:46:29.490 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:46:59.491 [info] {"source":"oban","duration":638,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:47:00.306 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:47:29.492 [info] {"source":"oban","duration":644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:47:59.493 [info] {"source":"oban","duration":637,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:48:00.307 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:48:29.494 [info] {"source":"oban","duration":613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:48:59.495 [info] {"source":"oban","duration":630,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:49:00.308 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:49:29.496 [info] {"source":"oban","duration":612,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:49:59.497 [info] {"source":"oban","duration":631,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:50:00.309 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:50:29.498 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:50:59.499 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:51:00.310 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:51:29.500 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:51:59.501 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:52:00.311 [info] {"source":"oban","duration":210,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:52:29.502 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:52:59.503 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:53:00.312 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:53:29.504 [info] {"source":"oban","duration":517,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:53:59.505 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:54:00.313 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:54:29.506 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:54:59.507 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:55:00.314 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:55:29.508 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:55:59.509 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:56:00.315 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:56:29.510 [info] {"source":"oban","duration":746,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:56:59.511 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:57:00.316 [info] {"source":"oban","duration":210,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:57:29.512 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:57:59.513 [info] {"source":"oban","duration":771,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:58:00.317 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:58:29.514 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:58:59.515 [info] {"source":"oban","duration":1181,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:59:00.318 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:59:29.517 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:59:59.518 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:00:00.320 [info] {"source":"oban","duration":486,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:00:29.519 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:00:59.520 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:01:00.322 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:01:29.521 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:01:59.522 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:02:00.323 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:02:29.523 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:02:59.524 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:03:00.324 [info] {"source":"oban","duration":223,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:03:29.525 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:03:59.526 [info] {"source":"oban","duration":773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:04:00.325 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:04:29.527 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:04:59.528 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:05:00.326 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:05:29.529 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:05:59.530 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:06:00.327 [info] {"source":"oban","duration":353,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:06:29.531 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:06:59.532 [info] {"source":"oban","duration":752,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:07:00.328 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:07:29.533 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:07:59.534 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:08:00.329 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:08:29.535 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:08:59.536 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:09:00.330 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:09:29.537 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:09:59.538 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:10:00.331 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:10:29.539 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:10:59.540 [info] {"source":"oban","duration":777,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:11:00.332 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:11:29.541 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:11:59.542 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:12:00.333 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:12:29.543 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:12:59.544 [info] {"source":"oban","duration":797,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:13:00.334 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:13:29.545 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:13:59.546 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:14:00.335 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:14:29.547 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:14:59.548 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:15:00.336 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:15:29.549 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:15:59.550 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:16:00.337 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:16:29.551 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:16:59.552 [info] {"source":"oban","duration":784,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:17:00.338 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:17:29.553 [info] {"source":"oban","duration":747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:17:59.554 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:18:00.339 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:18:29.555 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:18:59.556 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:19:00.340 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:19:29.557 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:19:59.558 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:20:00.341 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:20:29.559 [info] {"source":"oban","duration":831,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:20:59.560 [info] {"source":"oban","duration":785,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:21:00.342 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:21:29.561 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:21:59.562 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:22:00.343 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:22:29.563 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:22:59.564 [info] {"source":"oban","duration":743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:23:00.344 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:23:29.565 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:23:29.748 [info] GET /sitemap.xml 00:23:29.752 [debug] QUERY OK source="settings" db=0.7ms idle=1092.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:23:29.753 [debug] QUERY OK source="settings" db=0.1ms idle=1096.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:23:29.753 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 00:23:29.753 [error] #PID<0.552146.0> running PinchflatWeb.Endpoint (connection #PID<0.552144.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552144.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 34448}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4ba77e3f8028821-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.552146.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4ba77e3f8028821-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8ixdJKDokk2YMAMxHC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552144.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 34448}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4ba77e3f8028821-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552144.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 34448}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4ba77e3f8028821-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.552146.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 00:23:59.566 [info] {"source":"oban","duration":569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:24:00.345 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:24:29.567 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:24:59.568 [info] {"source":"oban","duration":580,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:25:00.346 [info] {"source":"oban","duration":232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:25:29.569 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:25:59.570 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:26:00.347 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:26:29.571 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:26:59.572 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:27:00.348 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:27:29.573 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:27:59.574 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:28:00.349 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:28:29.575 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:28:59.576 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:29:00.350 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:29:29.577 [info] {"source":"oban","duration":817,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:29:59.578 [info] {"source":"oban","duration":794,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:30:00.351 [info] {"source":"oban","duration":238,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:30:29.579 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:30:59.580 [info] {"source":"oban","duration":837,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:31:00.352 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:31:29.581 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:31:59.582 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:32:00.353 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:32:29.583 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:32:59.584 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:33:00.354 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:33:29.585 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:33:59.586 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:34:00.355 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:34:29.587 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:34:59.588 [info] {"source":"oban","duration":776,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:35:00.356 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:35:29.589 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:35:59.590 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:36:00.357 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:36:29.591 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:36:59.592 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:37:00.358 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:37:29.593 [info] {"source":"oban","duration":786,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:37:59.594 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:38:00.359 [info] {"source":"oban","duration":245,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:38:29.595 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:38:59.596 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:39:00.360 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:39:29.597 [info] {"source":"oban","duration":620,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:39:59.598 [info] {"source":"oban","duration":579,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:40:00.361 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:40:29.599 [info] {"source":"oban","duration":549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:40:59.600 [info] {"source":"oban","duration":469,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:41:00.362 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:41:29.601 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:41:59.602 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:42:00.363 [info] {"source":"oban","duration":250,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:42:29.603 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:42:59.604 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:43:00.364 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:43:29.605 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:43:59.606 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:44:00.365 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:44:29.607 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:44:59.608 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:45:00.366 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:45:29.609 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:45:59.610 [info] {"source":"oban","duration":828,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:46:00.367 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:46:29.611 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:46:59.612 [info] {"source":"oban","duration":788,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:47:00.368 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:47:29.613 [info] {"source":"oban","duration":764,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:47:59.614 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:48:00.369 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:48:29.615 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:48:59.616 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:49:00.370 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:49:29.617 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:49:58.684 [info] GET /sitemap.xml 00:49:58.684 [debug] QUERY OK source="settings" db=0.1ms idle=531.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:49:58.684 [debug] QUERY OK source="settings" db=0.1ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:49:58.685 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 00:49:58.685 [error] #PID<0.552294.0> running PinchflatWeb.Endpoint (connection #PID<0.552293.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552293.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 46166}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4ba9eaee9f84652-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.552294.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4ba9eaee9f84652-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8kN8Y2kjnIkMMAMxdi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552293.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 46166}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4ba9eaee9f84652-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552293.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 46166}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4ba9eaee9f84652-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.552294.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, (truncated) 00:49:59.618 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:50:00.371 [info] {"source":"oban","duration":229,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:50:29.619 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:50:59.620 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:51:00.372 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:51:29.621 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:51:59.622 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:52:00.373 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:52:29.623 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:52:59.624 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:53:00.374 [info] {"source":"oban","duration":118,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:53:29.625 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:53:59.626 [info] {"source":"oban","duration":620,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:54:00.375 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:54:29.627 [info] {"source":"oban","duration":596,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:54:59.628 [info] {"source":"oban","duration":575,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:55:00.376 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:55:29.630 [info] {"source":"oban","duration":1585,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:55:59.632 [info] {"source":"oban","duration":508,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:56:00.377 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:56:29.633 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:56:59.634 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:57:00.378 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:57:29.635 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:57:59.636 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:58:00.379 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:58:29.637 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:58:59.638 [info] {"source":"oban","duration":787,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:59:00.380 [info] {"source":"oban","duration":223,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:59:29.639 [info] {"source":"oban","duration":802,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:59:59.640 [info] {"source":"oban","duration":786,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:00:00.381 [info] {"source":"oban","duration":241,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:00:29.641 [info] {"source":"oban","duration":773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:00:59.642 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:01:00.382 [info] {"source":"oban","duration":177,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:01:29.643 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:01:59.644 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:02:00.383 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:02:29.645 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:02:59.646 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:03:00.384 [info] {"source":"oban","duration":173,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:03:29.647 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:03:59.648 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:04:00.385 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:04:29.649 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:04:59.650 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:05:00.386 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:05:29.651 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:05:59.652 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:06:00.387 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:06:29.653 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:06:59.654 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:07:00.388 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:07:29.655 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:07:59.656 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:08:00.389 [info] {"source":"oban","duration":132,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:08:29.657 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:08:59.658 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:09:00.390 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:09:29.659 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:09:59.660 [info] {"source":"oban","duration":779,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:10:00.391 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:10:29.661 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:10:59.662 [info] {"source":"oban","duration":648,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:11:00.392 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:11:29.663 [info] {"source":"oban","duration":522,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:11:59.664 [info] {"source":"oban","duration":513,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:12:00.393 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:12:29.665 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:12:59.666 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:13:00.394 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:13:29.667 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:13:59.668 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:14:00.395 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:14:29.669 [info] {"source":"oban","duration":832,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:14:59.671 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:15:00.396 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:15:29.672 [info] {"source":"oban","duration":796,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:15:59.673 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:16:00.397 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:16:29.674 [info] {"source":"oban","duration":788,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:16:59.675 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:17:00.398 [info] {"source":"oban","duration":244,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:17:29.676 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:17:59.677 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:18:00.399 [info] {"source":"oban","duration":240,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:18:29.678 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:18:59.679 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:19:00.400 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:19:29.680 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:19:59.681 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:20:00.401 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:20:29.682 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:20:59.683 [info] {"source":"oban","duration":770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:21:00.402 [info] {"source":"oban","duration":224,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:21:29.684 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:21:59.685 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:22:00.403 [info] {"source":"oban","duration":218,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:22:29.686 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:22:59.687 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:23:00.404 [info] {"source":"oban","duration":154,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:23:29.688 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:23:59.689 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:24:00.405 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:24:29.690 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:24:59.691 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:25:00.406 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:25:29.692 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:25:59.693 [info] {"source":"oban","duration":624,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:26:00.407 [info] {"source":"oban","duration":234,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:26:29.694 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:26:59.695 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:27:00.408 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:27:29.696 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:27:59.697 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:28:00.409 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:28:29.698 [info] {"source":"oban","duration":839,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:28:59.699 [info] {"source":"oban","duration":792,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:29:00.410 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:29:29.700 [info] {"source":"oban","duration":752,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:29:59.701 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:30:00.411 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:30:29.702 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:30:59.703 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:31:00.412 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:31:29.704 [info] {"source":"oban","duration":624,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:31:59.705 [info] {"source":"oban","duration":642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:32:00.413 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:32:29.706 [info] {"source":"oban","duration":648,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:32:59.707 [info] {"source":"oban","duration":636,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:33:00.414 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:33:29.708 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:33:59.709 [info] {"source":"oban","duration":646,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:34:00.415 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:34:29.710 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:34:59.711 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:35:00.416 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:35:29.712 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:35:59.713 [info] {"source":"oban","duration":649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:36:00.417 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:36:29.714 [info] {"source":"oban","duration":757,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:36:59.715 [info] {"source":"oban","duration":752,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:37:00.418 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:37:29.716 [info] {"source":"oban","duration":794,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:37:59.718 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:38:00.419 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:38:29.719 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:38:59.720 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:39:00.420 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:39:29.721 [info] {"source":"oban","duration":636,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:39:59.722 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:40:00.421 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:40:29.723 [info] {"source":"oban","duration":748,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:40:59.724 [info] {"source":"oban","duration":848,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:41:00.422 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:41:29.726 [info] {"source":"oban","duration":607,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:41:59.727 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:42:00.423 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:42:29.728 [info] {"source":"oban","duration":599,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:42:59.729 [info] {"source":"oban","duration":589,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:43:00.424 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:43:29.730 [info] {"source":"oban","duration":522,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:43:59.731 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:44:00.425 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:44:29.732 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:44:59.733 [info] {"source":"oban","duration":771,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:45:00.426 [info] {"source":"oban","duration":291,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:45:29.734 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:45:59.735 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:46:00.427 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:46:29.736 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:46:59.737 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:47:00.428 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:47:29.738 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:47:59.739 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:48:00.429 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:48:29.740 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:48:59.741 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:49:00.430 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:49:29.742 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:49:59.743 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:50:00.431 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:50:29.744 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:50:59.745 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:51:00.432 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:51:29.746 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:51:59.747 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:52:00.433 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:52:29.748 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:52:59.749 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:53:00.434 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:53:29.750 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:53:59.751 [info] {"source":"oban","duration":760,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:54:00.435 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:54:29.752 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:54:59.753 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:55:00.436 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:55:29.754 [info] {"source":"oban","duration":644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:55:59.755 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:56:00.437 [info] {"source":"oban","duration":269,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:56:29.756 [info] {"source":"oban","duration":765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:56:59.757 [info] {"source":"oban","duration":649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:57:00.438 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:57:29.758 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:57:59.759 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:58:00.439 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:58:29.760 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:58:59.761 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:59:00.440 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:59:29.762 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:59:59.763 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:00:00.441 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:00:29.773 [info] {"source":"oban","duration":9549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":6} 02:00:59.774 [info] {"source":"oban","duration":1126,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:01:00.442 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:01:29.776 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:01:59.777 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:02:00.443 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:02:29.778 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:02:59.779 [info] {"source":"oban","duration":745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:03:00.444 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:03:29.780 [info] {"source":"oban","duration":637,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:03:59.781 [info] {"source":"oban","duration":648,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:04:00.445 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:04:29.782 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:04:59.783 [info] {"source":"oban","duration":745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:05:00.446 [info] {"source":"oban","duration":232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:05:29.784 [info] {"source":"oban","duration":649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:05:59.785 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:06:00.447 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:06:29.787 [info] {"source":"oban","duration":1705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 02:06:59.788 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:07:00.448 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:07:29.789 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:07:59.790 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:08:00.449 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:08:29.791 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:08:59.792 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:09:00.450 [info] {"source":"oban","duration":165,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:09:29.793 [info] {"source":"oban","duration":810,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:09:59.794 [info] {"source":"oban","duration":733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:10:00.451 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:10:29.795 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:10:59.796 [info] {"source":"oban","duration":617,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:11:00.452 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:11:29.797 [info] {"source":"oban","duration":644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:11:59.798 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:12:00.453 [info] {"source":"oban","duration":245,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:12:29.799 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:12:59.800 [info] {"source":"oban","duration":589,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:13:00.454 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:13:29.801 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:13:59.802 [info] {"source":"oban","duration":536,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:14:00.455 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:14:29.803 [info] {"source":"oban","duration":487,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:14:59.803 [info] {"source":"oban","duration":443,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:15:00.456 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:15:29.805 [info] {"source":"oban","duration":644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:15:59.806 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:16:00.457 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:16:29.807 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:16:59.808 [info] {"source":"oban","duration":634,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:17:00.458 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:17:29.809 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:17:59.810 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:18:00.459 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:18:29.811 [info] {"source":"oban","duration":767,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:18:59.814 [info] {"source":"oban","duration":3281,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:19:00.460 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:19:29.816 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:19:59.817 [info] {"source":"oban","duration":1162,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:20:00.461 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:20:29.819 [info] {"source":"oban","duration":756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:20:59.820 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:21:00.462 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:21:29.821 [info] {"source":"oban","duration":642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:21:59.822 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:22:00.463 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:22:29.823 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:22:42.247 [info] GET /sitemap.xml 02:22:42.248 [debug] QUERY OK source="settings" db=0.4ms idle=958.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:22:42.248 [debug] QUERY OK source="settings" db=0.1ms idle=518.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:22:42.249 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 02:22:42.249 [error] #PID<0.552805.0> running PinchflatWeb.Endpoint (connection #PID<0.552804.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552804.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60810}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bb26839932864a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.552805.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bb26839932864a-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8pRyRx-z0u_fIAMyRC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552804.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60810}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bb26839932864a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552804.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60810}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bb26839932864a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.552805.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, (truncated) 02:22:59.824 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:23:00.464 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:23:29.825 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:23:59.826 [info] {"source":"oban","duration":763,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:24:00.465 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:24:29.828 [info] {"source":"oban","duration":1187,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:24:59.830 [info] {"source":"oban","duration":759,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:25:00.466 [info] {"source":"oban","duration":160,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:25:29.831 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:25:59.832 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:26:00.467 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:26:29.833 [info] {"source":"oban","duration":629,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:26:59.834 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:27:00.468 [info] {"source":"oban","duration":249,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:27:29.835 [info] {"source":"oban","duration":598,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:27:59.836 [info] {"source":"oban","duration":619,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:28:00.469 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:28:29.837 [info] {"source":"oban","duration":622,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:28:40.439 [info] GET / 02:28:40.439 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 02:28:40.440 [debug] QUERY OK source="settings" db=1.1ms idle=765.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:28:40.442 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.8ms idle=703.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 02:28:40.443 [debug] QUERY OK source="sources" db=0.2ms queue=0.8ms idle=705.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 02:28:40.701 [debug] QUERY OK source="media_items" db=257.4ms queue=0.1ms idle=706.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 02:28:40.703 [debug] QUERY OK source="media_items" db=1.3ms idle=261.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 02:28:40.703 [debug] QUERY OK source="settings" db=0.1ms idle=260.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:28:40.703 [debug] QUERY OK source="settings" db=0.0ms idle=259.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:28:40.704 [debug] QUERY OK source="settings" db=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:28:40.705 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 02:28:40.709 [debug] QUERY OK source="media_items" db=0.3ms idle=5.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 02:28:40.710 [debug] QUERY OK source="media_items" db=0.4ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 02:28:40.710 [debug] QUERY OK source="sources" db=0.2ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 02:28:40.756 [debug] QUERY OK source="media_items" db=43.4ms idle=8.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 02:28:40.761 [debug] QUERY OK source="media_items" db=4.1ms queue=0.1ms idle=51.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 02:28:40.762 [info] Sent 200 in 323ms 02:28:59.838 [info] {"source":"oban","duration":563,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:29:00.470 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:29:29.839 [info] {"source":"oban","duration":550,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:29:59.840 [info] {"source":"oban","duration":945,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:30:00.471 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:30:29.842 [info] {"source":"oban","duration":529,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:30:59.843 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:31:00.472 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:31:29.844 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:31:59.845 [info] {"source":"oban","duration":646,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:32:00.473 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:32:29.846 [info] {"source":"oban","duration":648,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:32:59.847 [info] {"source":"oban","duration":745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:33:00.474 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:33:29.848 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:33:59.849 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:34:00.475 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:34:29.850 [info] {"source":"oban","duration":745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:34:59.851 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:35:00.476 [info] {"source":"oban","duration":232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:35:29.852 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:35:59.853 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:36:00.477 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:36:29.854 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:36:59.855 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:37:00.478 [info] {"source":"oban","duration":241,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:37:29.856 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:37:59.857 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:38:00.479 [info] {"source":"oban","duration":271,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:38:29.858 [info] {"source":"oban","duration":763,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:38:59.859 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:39:00.480 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:39:29.860 [info] {"source":"oban","duration":617,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:39:59.861 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:40:00.481 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:40:29.862 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:40:59.863 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:41:00.482 [info] {"source":"oban","duration":139,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:41:29.864 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:41:39.466 [info] GET /sources/5/media/212876 02:41:39.466 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "212876", "source_id" => "5"} Pipelines: [:browser] 02:41:39.467 [debug] QUERY OK source="media_items" db=0.5ms idle=1724.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" = ?) [212876] 02:41:39.490 [debug] QUERY OK source="tasks" db=0.4ms idle=1748.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" [212876] 02:41:39.490 [debug] QUERY OK source="sources" db=0.4ms idle=1748.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 02:41:39.491 [debug] QUERY OK source="settings" db=0.2ms idle=1749.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:41:39.492 [debug] QUERY OK source="settings" db=0.2ms 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 [] 02:41:39.493 [debug] QUERY OK source="settings" db=0.2ms idle=25.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:41:39.497 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:41:39.499 [info] Sent 200 in 33ms 02:41:59.865 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:42:00.483 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:42:29.866 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:42:59.867 [info] {"source":"oban","duration":648,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:43:00.484 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:43:29.869 [info] {"source":"oban","duration":1448,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:43:59.870 [info] {"source":"oban","duration":628,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:44:00.485 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:44:29.871 [info] {"source":"oban","duration":621,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:44:59.872 [info] {"source":"oban","duration":620,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:45:00.486 [info] {"source":"oban","duration":223,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:45:29.873 [info] {"source":"oban","duration":592,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:45:59.874 [info] {"source":"oban","duration":569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:46:00.487 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:46:29.875 [info] {"source":"oban","duration":567,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:46:59.876 [info] {"source":"oban","duration":482,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:47:00.488 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:47:29.876 [info] {"source":"oban","duration":484,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:47:59.878 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:48:00.489 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:48:29.879 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:48:59.880 [info] {"source":"oban","duration":620,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:49:00.490 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:49:29.881 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:49:59.882 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:50:00.491 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:50:29.883 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:50:59.884 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:51:00.492 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:51:15.795 [info] GET /sitemap.xml 02:51:15.795 [debug] QUERY OK source="settings" db=0.1ms idle=653.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:51:15.796 [debug] QUERY OK source="settings" db=0.1ms idle=54.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:51:15.796 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 02:51:15.796 [error] #PID<0.552972.0> running PinchflatWeb.Endpoint (connection #PID<0.552971.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552971.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 59062}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bb50596c3c4af4-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.552972.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bb50596c3c4af4-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8q1hvV7lUxAycABmMj"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552971.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 59062}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bb50596c3c4af4-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.552971.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 59062}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bb50596c3c4af4-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.552972.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 02:51:29.885 [info] {"source":"oban","duration":784,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:51:59.886 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:52:00.493 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:52:05.201 [info] {"args":{"id":9},"id":6578,"meta":{},"system_time":1792198325201438123,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 02:52:05.202 [debug] QUERY OK source="sources" db=0.6ms idle=1436.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:05.203 [debug] QUERY OK source="settings" db=0.5ms idle=1437.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:52:05.204 [debug] QUERY OK source="media_items" db=1.2ms idle=1010.9ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [9] 02:52:05.205 [debug] QUERY OK source="media_items" db=0.2ms idle=9.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [9] 02:52:05.205 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:05.205 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:52:05.206 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:52:05.206 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 02:52:05.206 [debug] Current batch of media processed. Will check again in 1000ms 02:52:05.207 [debug] QUERY OK source="settings" db=0.2ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:52:05.207 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:52:05.207 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:52:05.208 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/playlist?list=PLUUVA1IsKg-WqgEu55gWCHpi8Wfs_YqcZ&si=z1kjgb4xIhCbOdG_ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/shows/Claire Recreates/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/10/25/10254fb0749ab49ccfcfb39f93e1c4f9758c20fb3d6c0f7851a39095adf885c7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 02:52:06.207 [debug] Current batch of media processed. Will check again in 1000ms 02:52:07.208 [debug] Current batch of media processed. Will check again in 1000ms 02:52:08.209 [debug] Current batch of media processed. Will check again in 1000ms 02:52:09.210 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Drumsticks | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Nestle Drumsticks, The Original Ice Cream Cone. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #icecream #drumsticks \n\nCHAPTERS:\n00:00 Intro\n00:54 Snack breakdown\n03:29 Measurements\n04:43 Original ingredients\n05:15 Game plan\n06:15 Make and form cones\n18:13 Bake the cones\n19:53 Make the chocolate coating\n23:03 Make the ice cream\n32:05 Form the bulbs\n33:26 The next morning\n34:04 Make the magic shell\n37:29 Taste test\n41:59 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make the cones, combine 3 ounces room temp egg whites, ¼ cup granulated sugar, ¼ up demerara sugar, 3 tablespoons melted cooled butter, 2 teaspoons vanilla extract, ½ cup flour, 1 tablespoon cornstarch, ½ teaspoon kosher salt, and ¼ teaspoon baking soda and blend with a hand blender until completely smooth. Transfer the batter to a piping bag and pipe some onto the grates of a preheated electric waffle cone iron. Cook just until it’s set but pale, then transfer the piece to a cutting board and trace around a football-shaped stencil with a wheel cutter. Remove the excess, return the piece to the iron, and cook until golden brown all over. Form the cone around a mold, pressing firmly on the seam. Repeat with more batter. Dry the cones in a 200-degree oven upside down on a rack set over a baking sheet,, then let cool. Brush the insides of the cones with a thin layer of melted chocolate, depositing a half teaspoon of chocolate in the bottom of each. Place the cones on a rack in the freezer. \n\nTo make the ice cream, vigorously whisk 8 large egg yolks, 1 cup granulated sugar, 30g malted milk powder, ½ teaspoon kosher salt, and 1 tablespoon vanilla paste in the bottom of a large saucepan until pale and ribbony. Whisk in 3 cups whole milk and 1 cup heavy cream. Cook the mixture, whisking constantly over medium heat, until it registers 180-degrees. Cool the mixture rapidly in an ice bath, then transfer to an ice cream machine and spin until the ice cream holds its shape. Transfer some of the ice cream to a piping bag and fill the chocolate-coated cones, smoothing the tops, then transfer the rest of the ice cream to a chilled loaf pan and freeze solid. Scooping from the loaf pan, place a scoop of ice cream over the top of each cone, smoothing with a small offset spatula to form nice domes. Freeze the cones overnight, then melt chocolate and coconut oil together to make a magic shell. Dip the cones in the shell, shaking off excess, then gently roll in very evenly chopped and sifted roasted salted peanuts. Freeze until form, at least 20 minutes.", "duration" => 2534, "filename" => "/downloads/shows/Claire Recreates/Season 2024/s2024e043000 - I Tried Making Homemade Drumsticks | Claire Recreates.mkv", "id" => "Qd0TQeVQ2Z0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Qd0TQeVQ2Z0", "playlist_index" => 1, "timestamp" => 1714482032, "title" => "I Tried Making Homemade Drumsticks | Claire Recreates", "upload_date" => "20240430"} 02:52:09.211 [debug] QUERY OK source="sources" db=0.3ms idle=445.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:09.212 [debug] QUERY OK source="sources" db=0.1ms idle=446.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:09.212 [debug] QUERY OK source="media_items" db=0.2ms idle=446.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-30 13:00:32Z], 9] 02:52:09.218 [debug] QUERY OK source="media_items" db=4.8ms idle=447.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Drumsticks | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Nestle Drumsticks, The Original Ice Cream Cone. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #icecream #drumsticks \n\nCHAPTERS:\n00:00 Intro\n00:54 Snack breakdown\n03:29 Measurements\n04:43 Original ingredients\n05:15 Game plan\n06:15 Make and form cones\n18:13 Bake the cones\n19:53 Make the chocolate coating\n23:03 Make the ice cream\n32:05 Form the bulbs\n33:26 The next morning\n34:04 Make the magic shell\n37:29 Taste test\n41:59 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make the cones, combine 3 ounces room temp egg whites, ¼ cup granulated sugar, ¼ up demerara sugar, 3 tablespoons melted cooled butter, 2 teaspoons vanilla extract, ½ cup flour, 1 tablespoon cornstarch, ½ teaspoon kosher salt, and ¼ teaspoon baking soda and blend with a hand blender until completely smooth. Transfer the batter to a piping bag and pipe some onto the grates of a preheated electric waffle cone iron. Cook just until it’s set but pale, then transfer the piece to a cutting board and trace around a football-shaped stencil with a wheel cutter. Remove the excess, return the piece to the iron, and cook until golden brown all over. Form the cone around a mold, pressing firmly on the seam. Repeat with more batter. Dry the cones in a 200-degree oven upside down on a rack set over a baking sheet,, then let cool. Brush the insides of the cones with a thin layer of melted chocolate, depositing a half teaspoon of chocolate in the bottom of each. Place the cones on a rack in the freezer. \n\nTo make the ice cream, vigorously whisk 8 large egg yolks, 1 cup granulated sugar, 30g malted milk powder, ½ teaspoon kosher salt, and 1 tablespoon vanilla paste in the bottom of a large saucepan until pale and ribbony. Whisk in 3 cups whole milk and 1 cup heavy cream. Cook the mixture, whisking constantly over medium heat, until it registers 180-degrees. Cool the mixture rapidly in an ice bath, then transfer to an ice cream machine and spin until the ice cream holds its shape. Transfer some of the ice cream to a piping bag and fill the chocolate-coated cones, smoothing the tops, then transfer the rest of the ice cream to a chilled loaf pan and freeze solid. Scooping from the loaf pan, place a scoop of ice cream over the top of each cone, smoothing with a small offset spatula to form nice domes. Freeze the cones overnight, then melt chocolate and coconut oil together to make a magic shell. Dip the cones in the shell, shaking off excess, then gently roll in very evenly chopped and sifted roasted salted peanuts. Freeze until form, at least 20 minutes.", "I Tried Making Homemade Drumsticks | Claire Recreates", "8462685a-0200-4e02-a9c4-34fe23702763", "Qd0TQeVQ2Z0", false, 2534, false, "https://www.youtube.com/watch?v=Qd0TQeVQ2Z0", 1, "/downloads/shows/Claire Recreates/Season 2024/s2024e043000 - I Tried Making Homemade Drumsticks | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-04-30 13:00:32Z], ~U[2026-10-17 00:52:09Z], ~U[2026-10-17 00:52:09Z], "I Tried Making Homemade Drumsticks | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Nestle Drumsticks, The Original Ice Cream Cone. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #icecream #drumsticks \n\nCHAPTERS:\n00:00 Intro\n00:54 Snack breakdown\n03:29 Measurements\n04:43 Original ingredients\n05:15 Game plan\n06:15 Make and form cones\n18:13 Bake the cones\n19:53 Make the chocolate coating\n23:03 Make the ice cream\n32:05 Form the bulbs\n33:26 The next morning\n34:04 Make the magic shell\n37:29 Taste test\n41:59 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make the cones, combine 3 ounces room temp egg whites, ¼ cup granulated sugar, ¼ up demerara sugar, 3 tablespoons melted cooled butter, 2 teaspoons vanilla extract, ½ cup flour, 1 tablespoon cornstarch, ½ teaspoon kosher salt, and ¼ teaspoon baking soda and blend with a hand blender until completely smooth. Transfer the batter to a piping bag and pipe some onto the grates of a preheated electric waffle cone iron. Cook just until it’s set but pale, then transfer the piece to a cutting board and trace around a football-shaped stencil with a wheel cutter. Remove the excess, return the piece to the iron, and cook until golden brown all over. Form the cone around a mold, pressing firmly on the seam. Repeat with more batter. Dry the cones in a 200-degree oven upside down on a rack set over a baking sheet,, then let cool. Brush the insides of the cones with a thin layer of melted chocolate, depositing a half teaspoon of chocolate in the bottom of each. Place the cones on a rack in the freezer. \n\nTo make the ice cream, vigorously whisk 8 large egg yolks, 1 cup granulated sugar, 30g malted milk powder, ½ teaspoon kosher salt, and 1 tablespoon vanilla paste in the bottom of a large saucepan until pale and ribbony. Whisk in 3 cups whole milk and 1 cup heavy cream. Cook the mixture, whisking constantly over medium heat, until it registers 180-degrees. Cool the mixture rapidly in an ice bath, then transfer to an ice cream machine and spin until the ice cream holds its shape. Transfer some of the ice cream to a piping bag and fill the chocolate-coated cones, smoothing the tops, then transfer the rest of the ice cream to a chilled loaf pan and freeze solid. Scooping from the loaf pan, place a scoop of ice cream over the top of each cone, smoothing with a small offset spatula to form nice domes. Freeze the cones overnight, then melt chocolat (truncated) 02:52:09.219 [debug] QUERY OK source="sources" db=0.2ms idle=19.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:09.219 [debug] QUERY OK source="media_profiles" db=0.4ms idle=7.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:09.220 [debug] QUERY OK source="media_items" db=0.2ms idle=8.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29414] 02:52:09.220 [debug] Current batch of media processed. Will check again in 1000ms 02:52:10.221 [debug] Current batch of media processed. Will check again in 1000ms 02:52:11.222 [debug] Current batch of media processed. Will check again in 1000ms 02:52:12.223 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Zebra Cakes | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Little Debbie Zebra Cakes. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #zebracake #cake \n\nChapters:\n00:00 Intro\n00:43 Zebra Cakes\n01:20 Taste test (Original)\n06:28 Game plan\n06:41 Bake cake\n16:37 Make the filling\n22:23 Fill & stack\n25:28 Cut out hexagons\n27:56 Fondant & glaze\n38:14 Chocolate stripes\n42:15 Comparison\n45:28 Spud gets brushed!\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make zebra cakes, start by whisking ¾ cup cake flour, ¼ teaspoon baking powder, ⅛ teaspoon baking soda, and ¾ teaspoon kosher salt in a medium bowl. In a separate bowl, beat 3 egg yolks and ¼ cup sugar with a hand mixer until ribbony, then stream in ¼ cup neutral oil, ¼ cup buttermilk, and a teaspoon of vanilla extract. Pour the yolk mixture into the flour mixture and whisk until smooth. In a separate bowl, combine three egg whites, ¼ cup sugar, and a pinch of cream of tartar and beat with an electric mixer to stiff peaks. Fold the whites into the batter, then scrape onto a parchment-lined half sheet tray. Bake in a 225-degree oven until springy to the touch and golden, then let cool. Trim the edges then cut the sponge into 6-cm-wide strips and trim them horizontally so they’re about 7mm thick. Freeze the pieces. \n\nTo make the filling, combine 3 ounces egg whites, 5.5 ounces of sugar, ½ teaspoon kosher salt, and a pinch of cream of tartar in the bowl of a stand mixer set over a double boiler and stir until the sugar dissolves. Whip the egg whites until firm peaks form and the meringue is room temperature, then gradually beat in 10 ounces of room temperature butter. Scrape down the sides of the bowl and beat in 1 tablespoon of vanilla paste. Pipe a layer of buttercream onto the surfaces of the cake strips using a basketweave tip, then sandwich the cake together. Chill briefly, then cut out hexagons using a serrated knife and template. Chill the cakes. \n\nIn a large bowl, whisk together 4 cups powdered sugar, ¼ cup hot water, ¼ cup light corn syrup, and 1 teaspoon vanilla extract until smooth. Whisk in 142g melted white chocolate, then thin with more hot water to the desired consistency. Place over a saucepan of hot water to keep warm. Spread a thin layer over the tops of the cakes, let set at room temperature, then place the cakes one at a time glaze-size down on a large fork and spoon the glaze over the cakes until fully enrobed. Place on a wire rack and let set. Pipe thin lines of melted chocolate over the surfaces of the cakes in a wavy pattern and let set.", "duration" => 2744, "filename" => "/downloads/shows/Claire Recreates/Season 2024/s2024e052800 - I Tried Making Homemade Zebra Cakes | Claire Recreates.mkv", "id" => "OtgomG_a0jg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OtgomG_a0jg", "playlist_index" => 2, "timestamp" => 1716901219, "title" => "I Tried Making Homemade Zebra Cakes | Claire Recreates", "upload_date" => "20240528"} 02:52:12.224 [debug] QUERY OK source="sources" db=0.2ms idle=1458.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:12.224 [debug] QUERY OK source="sources" db=0.1ms idle=1459.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:12.225 [debug] QUERY OK source="media_items" db=0.4ms idle=1459.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-28 13:00:19Z], 9] 02:52:12.230 [debug] QUERY OK source="media_items" db=4.1ms idle=1024.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Zebra Cakes | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Little Debbie Zebra Cakes. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #zebracake #cake \n\nChapters:\n00:00 Intro\n00:43 Zebra Cakes\n01:20 Taste test (Original)\n06:28 Game plan\n06:41 Bake cake\n16:37 Make the filling\n22:23 Fill & stack\n25:28 Cut out hexagons\n27:56 Fondant & glaze\n38:14 Chocolate stripes\n42:15 Comparison\n45:28 Spud gets brushed!\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make zebra cakes, start by whisking ¾ cup cake flour, ¼ teaspoon baking powder, ⅛ teaspoon baking soda, and ¾ teaspoon kosher salt in a medium bowl. In a separate bowl, beat 3 egg yolks and ¼ cup sugar with a hand mixer until ribbony, then stream in ¼ cup neutral oil, ¼ cup buttermilk, and a teaspoon of vanilla extract. Pour the yolk mixture into the flour mixture and whisk until smooth. In a separate bowl, combine three egg whites, ¼ cup sugar, and a pinch of cream of tartar and beat with an electric mixer to stiff peaks. Fold the whites into the batter, then scrape onto a parchment-lined half sheet tray. Bake in a 225-degree oven until springy to the touch and golden, then let cool. Trim the edges then cut the sponge into 6-cm-wide strips and trim them horizontally so they’re about 7mm thick. Freeze the pieces. \n\nTo make the filling, combine 3 ounces egg whites, 5.5 ounces of sugar, ½ teaspoon kosher salt, and a pinch of cream of tartar in the bowl of a stand mixer set over a double boiler and stir until the sugar dissolves. Whip the egg whites until firm peaks form and the meringue is room temperature, then gradually beat in 10 ounces of room temperature butter. Scrape down the sides of the bowl and beat in 1 tablespoon of vanilla paste. Pipe a layer of buttercream onto the surfaces of the cake strips using a basketweave tip, then sandwich the cake together. Chill briefly, then cut out hexagons using a serrated knife and template. Chill the cakes. \n\nIn a large bowl, whisk together 4 cups powdered sugar, ¼ cup hot water, ¼ cup light corn syrup, and 1 teaspoon vanilla extract until smooth. Whisk in 142g melted white chocolate, then thin with more hot water to the desired consistency. Place over a saucepan of hot water to keep warm. Spread a thin layer over the tops of the cakes, let set at room temperature, then place the cakes one at a time glaze-size down on a large fork and spoon the glaze over the cakes until fully enrobed. Place on a wire rack and let set. Pipe thin lines of melted chocolate over the surfaces of the cakes in a wavy pattern and let set.", "I Tried Making Homemade Zebra Cakes | Claire Recreates", "82c6818f-7046-4e4a-bb8f-f222bfd96748", "OtgomG_a0jg", false, 2744, false, "https://www.youtube.com/watch?v=OtgomG_a0jg", 2, "/downloads/shows/Claire Recreates/Season 2024/s2024e052800 - I Tried Making Homemade Zebra Cakes | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-05-28 13:00:19Z], ~U[2026-10-17 00:52:12Z], ~U[2026-10-17 00:52:12Z], "I Tried Making Homemade Zebra Cakes | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Little Debbie Zebra Cakes. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #zebracake #cake \n\nChapters:\n00:00 Intro\n00:43 Zebra Cakes\n01:20 Taste test (Original)\n06:28 Game plan\n06:41 Bake cake\n16:37 Make the filling\n22:23 Fill & stack\n25:28 Cut out hexagons\n27:56 Fondant & glaze\n38:14 Chocolate stripes\n42:15 Comparison\n45:28 Spud gets brushed!\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make zebra cakes, start by whisking ¾ cup cake flour, ¼ teaspoon baking powder, ⅛ teaspoon baking soda, and ¾ teaspoon kosher salt in a medium bowl. In a separate bowl, beat 3 egg yolks and ¼ cup sugar with a hand mixer until ribbony, then stream in ¼ cup neutral oil, ¼ cup buttermilk, and a teaspoon of vanilla extract. Pour the yolk mixture into the flour mixture and whisk until smooth. In a separate bowl, combine three egg whites, ¼ cup sugar, and a pinch of cream of tartar and beat with an electric mixer to stiff peaks. Fold the whites into the batter, then scrape onto a parchment-lined half sheet tray. Bake in a 225-degree oven until springy to the touch and golden, then let cool. Trim the edges then cut the sponge into 6-cm-wide strips and trim them horizontally so they’re about 7mm thick. Freeze the pieces. \n\nTo make the filling, combine 3 ounces egg whites, 5.5 ounces of sugar, ½ teaspoon kosher salt, and a pinch of cream of tartar in the bowl of a stand mixer set over a double boiler and stir until the sugar dissolves. Whip the egg whites until firm peaks form and the meringue is room temperature, then gradually beat in 10 ounces of room temperature butter. Scrape down the sides of the bowl and beat in 1 tablespoon of vanilla paste. Pipe a layer of buttercream onto the surfaces of the cake strips using a basketweave tip, then sandwich the cake together. Chill briefly, then cut out hexagons using a serrated knife and template. Chill the cakes. \n\nIn a large bowl, whisk together 4 cups powdered sugar, ¼ cup hot water, ¼ cup light corn syrup, and 1 teaspoon vanilla extract until smooth. Whisk in 142g melted white chocolate, then thin with more hot water to the desired consistency. Place over a saucepan of hot water to keep warm. Spread a thin layer over the tops of the cakes, let set at room temperature, then place the cakes one at a time glaze-size down on a large fork and spoon the glaze over the cakes until fully (truncated) 02:52:12.231 [debug] QUERY OK source="sources" db=0.2ms idle=27.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:12.231 [debug] QUERY OK source="media_profiles" db=0.4ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:12.232 [debug] QUERY OK source="media_items" db=0.4ms idle=7.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29415] 02:52:12.232 [debug] Current batch of media processed. Will check again in 1000ms 02:52:13.233 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Cosmic Brownies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tackles beloved childhood snacks and popular meals with a unique twist. In today's episode, she focuses on Little Debbie Cosmic Brownies. Join Claire as she reimagines these classics, offering delicious recipes perfect for home cooking enthusiasts. If you're nostalgic for your favorite foods and intrigued by the art of recipe development, this series is for you! Don't miss Claire's creative take on these timeless dishes.\n\n#cosmicbrownies #clairesaffitz #brownie \n\nChapters:\n00:00 Intro\n01:14 Basic components\n01:53 Taste test\n04:19 Measurements\n08:36 Game plan\n10:34 Temper the chocolate\n16:12 Make the candy coating\n23:29 Make the brownies\n29:12 Make the royal icing\n31:28 Make the glaze\n37:19 Assemble\n39:17 Conclusion\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nBROWNIES\n6.6 ounces bittersweet chocolate\n1 stick unsalted butter\n5.55 ounces confectioners’ sugar\n2 large egg yolks\n1 teaspoon kosher salt\n2 teaspoon vanilla extract or paste\n6 ounces all-purpose flour\n\nFUDGE FROSTING\n4 tablespoons unsalted butter\n1½ cups (300g) sugar\n2 tablespoons unsweetened cocoa powder\n¾ cup whole milk\nGenerous pinch of kosher salt\n1 teaspoon vanilla extract\n1½ ounces unsweetened chocolate\n\nBROWNIES: Preheat the oven to 350°F. Lightly butter the bottom and sides of a ¼ sheet pan. Line the bottom and two longer sides with a piece of parchment paper, smoothing to eliminate air bubbles. Melt chocolate and butter in a large bowl set over a double boiler, stirring often with a flexible heat-proof spatula. Remove from the heat and add the sugar, yolks, salt, and vanilla and whisk vigorously. Add the flour and fold thoroughly with the spatula until you have a homogenous dough. Spread into the prepared pan with an offset spatula in a smooth, even layer. Bake in a water bath until the brownies are set, 18 to 22 minutes. Remove from the oven and let cool completely.", "duration" => 2675, "filename" => "/downloads/shows/Claire Recreates/Season 2024/s2024e062100 - I Tried Making Homemade Cosmic Brownies | Claire Recreates.mkv", "id" => "BpA0hvBfnO0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BpA0hvBfnO0", "playlist_index" => 3, "timestamp" => 1718974811, "title" => "I Tried Making Homemade Cosmic Brownies | Claire Recreates", "upload_date" => "20240621"} 02:52:13.234 [debug] QUERY OK source="sources" db=0.2ms idle=1004.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:13.234 [debug] QUERY OK source="sources" db=0.1ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:13.235 [debug] QUERY OK source="media_items" db=0.3ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-21 13:00:11Z], 9] 02:52:13.256 [debug] QUERY OK source="media_items" db=20.4ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Cosmic Brownies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tackles beloved childhood snacks and popular meals with a unique twist. In today's episode, she focuses on Little Debbie Cosmic Brownies. Join Claire as she reimagines these classics, offering delicious recipes perfect for home cooking enthusiasts. If you're nostalgic for your favorite foods and intrigued by the art of recipe development, this series is for you! Don't miss Claire's creative take on these timeless dishes.\n\n#cosmicbrownies #clairesaffitz #brownie \n\nChapters:\n00:00 Intro\n01:14 Basic components\n01:53 Taste test\n04:19 Measurements\n08:36 Game plan\n10:34 Temper the chocolate\n16:12 Make the candy coating\n23:29 Make the brownies\n29:12 Make the royal icing\n31:28 Make the glaze\n37:19 Assemble\n39:17 Conclusion\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nBROWNIES\n6.6 ounces bittersweet chocolate\n1 stick unsalted butter\n5.55 ounces confectioners’ sugar\n2 large egg yolks\n1 teaspoon kosher salt\n2 teaspoon vanilla extract or paste\n6 ounces all-purpose flour\n\nFUDGE FROSTING\n4 tablespoons unsalted butter\n1½ cups (300g) sugar\n2 tablespoons unsweetened cocoa powder\n¾ cup whole milk\nGenerous pinch of kosher salt\n1 teaspoon vanilla extract\n1½ ounces unsweetened chocolate\n\nBROWNIES: Preheat the oven to 350°F. Lightly butter the bottom and sides of a ¼ sheet pan. Line the bottom and two longer sides with a piece of parchment paper, smoothing to eliminate air bubbles. Melt chocolate and butter in a large bowl set over a double boiler, stirring often with a flexible heat-proof spatula. Remove from the heat and add the sugar, yolks, salt, and vanilla and whisk vigorously. Add the flour and fold thoroughly with the spatula until you have a homogenous dough. Spread into the prepared pan with an offset spatula in a smooth, even layer. Bake in a water bath until the brownies are set, 18 to 22 minutes. Remove from the oven and let cool completely.", "I Tried Making Homemade Cosmic Brownies | Claire Recreates", "8e27993d-c6d6-49f8-83f9-8278560a5bc1", "BpA0hvBfnO0", false, 2675, false, "https://www.youtube.com/watch?v=BpA0hvBfnO0", 3, "/downloads/shows/Claire Recreates/Season 2024/s2024e062100 - I Tried Making Homemade Cosmic Brownies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-06-21 13:00:11Z], ~U[2026-10-17 00:52:13Z], ~U[2026-10-17 00:52:13Z], "I Tried Making Homemade Cosmic Brownies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tackles beloved childhood snacks and popular meals with a unique twist. In today's episode, she focuses on Little Debbie Cosmic Brownies. Join Claire as she reimagines these classics, offering delicious recipes perfect for home cooking enthusiasts. If you're nostalgic for your favorite foods and intrigued by the art of recipe development, this series is for you! Don't miss Claire's creative take on these timeless dishes.\n\n#cosmicbrownies #clairesaffitz #brownie \n\nChapters:\n00:00 Intro\n01:14 Basic components\n01:53 Taste test\n04:19 Measurements\n08:36 Game plan\n10:34 Temper the chocolate\n16:12 Make the candy coating\n23:29 Make the brownies\n29:12 Make the royal icing\n31:28 Make the glaze\n37:19 Assemble\n39:17 Conclusion\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nBROWNIES\n6.6 ounces bittersweet chocolate\n1 stick unsalted butter\n5.55 ounces confectioners’ sugar\n2 large egg yolks\n1 teaspoon kosher salt\n2 teaspoon vanilla extract or paste\n6 ounces all-purpose flour\n\nFUDGE FROSTING\n4 tablespoons unsalted butter\n1½ cups (300g) sugar\n2 tablespoons unsweetened cocoa powder\n¾ cup whole milk\nGenerous pinch of kosher salt\n1 teaspoon vanilla extract\n1½ ounces unsweetened chocolate\n\nBROWNIES: Preheat the oven to 350°F. Lightly butter the bottom and sides of a ¼ sheet pan. Line the bottom and two longer sides with a piece of parchment paper, smoothing to eliminate air bubbles. Melt chocolate and butter in a large bowl set over a double boiler, stirring often with a flexible heat-proof spatula. Remove from the heat and add the sugar, yolks, salt, and vanilla and whisk vigorously. Add the flour and fold thoroughly with the spatula until you have a homogenous dough. Spread into the prepared pan with an offset spatula in a smooth, even layer. Bake in a water bath until the brownies are set, 18 to 22 minutes. Remove from the oven and let cool completely.", "I Tried Making Homemade Cosmic Brownies | Claire Recreates", "BpA0hvBfnO0", 2675, false, "https://www.youtube.com/watch?v=BpA0hvBfnO0", "/downloads/shows/Claire Recreates/Season 2024/s2024e062100 - I Tried Making Homemade Cosmic Brownies | Claire Recreates.mkv", false, 9, ~U[2024-06-21 13:00:11Z]] 02:52:13.257 [debug] QUERY OK source="sources" db=0.4ms idle=52.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:13.258 [debug] QUERY OK source="media_profiles" db=0.2ms idle=23.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:13.258 [debug] QUERY OK source="media_items" db=0.3ms idle=23.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29416] 02:52:13.258 [debug] Current batch of media processed. Will check again in 1000ms 02:52:14.259 [debug] Current batch of media processed. Will check again in 1000ms 02:52:15.260 [debug] Current batch of media processed. Will check again in 1000ms 02:52:16.261 [debug] Current batch of media processed. Will check again in 1000ms 02:52:17.262 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz takes on nostalgic childhood snacks and popular meals, adding her own creative twist. In today's episode, she focuses on Strawberry Shortcake Bars, pairing them with homemade ice cream. Join Claire as she reimagines these classics, sharing delicious recipes perfect for home cooking enthusiasts. If you have a soft spot for your favorite foods and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive approach to these timeless treats.\n\n#strawberryshortcake #clairesaffitz #icecream \n\nChapters:\n00:00 Intro\n00:28 Strawberry shortcake bars\n01:12 Taste test\n02:53 Reading the ingredients\n04:01 Measurements\n07:03 Game plan\n09:16 Make the ice cream base\n12:47 Make strawberry ice cream base\n15:38 Make the strawberry cores\n24:07 Make cake crumbs\n28:34 Fill molds\n45:10 Assemble\n46:05 Comparison\n49:32 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nStrawberry Shortcake Bars\nMakes 8\n\nVANILLA ICE CREAM\n8 large egg yolks\n¾ cup granulated sugar\n½ teaspoon kosher salt\n1 tablespoon vanilla paste\n3 cups whole milk\n1 cup heavy cream\n\n1 pound strawberries chopped, mixed with 2 tbsp sugar, roasted at 275 for 1 hour, stir a few times, blend in to half of vanilla base and flavor with 1 Tbsp hibiscus powder and 20g freeze dried strawberries, strain, process\n\nSUGAR COOKIE CRUMBS\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour\n\nSTRAWBERRY VERSION\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour", "duration" => 2988, "filename" => "/downloads/shows/Claire Recreates/Season 2024/s2024e080800 - I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates.mkv", "id" => "dPBXgwJD35E", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dPBXgwJD35E", "playlist_index" => 4, "timestamp" => 1723137303, "title" => "I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates", "upload_date" => "20240808"} 02:52:17.263 [debug] QUERY OK source="sources" db=0.4ms idle=497.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:17.264 [debug] QUERY OK source="sources" db=0.3ms idle=498.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:17.264 [debug] QUERY OK source="media_items" db=0.3ms idle=498.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-08 17:15:03Z], 9] 02:52:17.272 [debug] QUERY OK source="media_items" db=6.5ms idle=499.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz takes on nostalgic childhood snacks and popular meals, adding her own creative twist. In today's episode, she focuses on Strawberry Shortcake Bars, pairing them with homemade ice cream. Join Claire as she reimagines these classics, sharing delicious recipes perfect for home cooking enthusiasts. If you have a soft spot for your favorite foods and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive approach to these timeless treats.\n\n#strawberryshortcake #clairesaffitz #icecream \n\nChapters:\n00:00 Intro\n00:28 Strawberry shortcake bars\n01:12 Taste test\n02:53 Reading the ingredients\n04:01 Measurements\n07:03 Game plan\n09:16 Make the ice cream base\n12:47 Make strawberry ice cream base\n15:38 Make the strawberry cores\n24:07 Make cake crumbs\n28:34 Fill molds\n45:10 Assemble\n46:05 Comparison\n49:32 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nStrawberry Shortcake Bars\nMakes 8\n\nVANILLA ICE CREAM\n8 large egg yolks\n¾ cup granulated sugar\n½ teaspoon kosher salt\n1 tablespoon vanilla paste\n3 cups whole milk\n1 cup heavy cream\n\n1 pound strawberries chopped, mixed with 2 tbsp sugar, roasted at 275 for 1 hour, stir a few times, blend in to half of vanilla base and flavor with 1 Tbsp hibiscus powder and 20g freeze dried strawberries, strain, process\n\nSUGAR COOKIE CRUMBS\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour\n\nSTRAWBERRY VERSION\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour", "I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates", "3b50efeb-e23b-49c1-a5a4-eae6a89321f3", "dPBXgwJD35E", false, 2988, false, "https://www.youtube.com/watch?v=dPBXgwJD35E", 4, "/downloads/shows/Claire Recreates/Season 2024/s2024e080800 - I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-08-08 17:15:03Z], ~U[2026-10-17 00:52:17Z], ~U[2026-10-17 00:52:17Z], "I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz takes on nostalgic childhood snacks and popular meals, adding her own creative twist. In today's episode, she focuses on Strawberry Shortcake Bars, pairing them with homemade ice cream. Join Claire as she reimagines these classics, sharing delicious recipes perfect for home cooking enthusiasts. If you have a soft spot for your favorite foods and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive approach to these timeless treats.\n\n#strawberryshortcake #clairesaffitz #icecream \n\nChapters:\n00:00 Intro\n00:28 Strawberry shortcake bars\n01:12 Taste test\n02:53 Reading the ingredients\n04:01 Measurements\n07:03 Game plan\n09:16 Make the ice cream base\n12:47 Make strawberry ice cream base\n15:38 Make the strawberry cores\n24:07 Make cake crumbs\n28:34 Fill molds\n45:10 Assemble\n46:05 Comparison\n49:32 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nStrawberry Shortcake Bars\nMakes 8\n\nVANILLA ICE CREAM\n8 large egg yolks\n¾ cup granulated sugar\n½ teaspoon kosher salt\n1 tablespoon vanilla paste\n3 cups whole milk\n1 cup heavy cream\n\n1 pound strawberries chopped, mixed with 2 tbsp sugar, roasted at 275 for 1 hour, stir a few times, blend in to half of vanilla base and flavor with 1 Tbsp hibiscus powder and 20g freeze dried strawberries, strain, process\n\nSUGAR COOKIE CRUMBS\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour\n\nSTRAWBERRY VERSION\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour", "I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates", "dPBXgwJD35E", 2988, false, "https://www.youtube.com/watch?v=dPBXgwJD35E", "/downloads/shows/Claire Recreates/Season 2024/s2024e080800 - I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates.mkv", false, 9, ~U[2024-08-08 17:15:03Z]] 02:52:17.272 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=63.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:17.273 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:17.274 [debug] QUERY OK source="media_items" db=0.3ms idle=9.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29417] 02:52:17.274 [debug] Current batch of media processed. Will check again in 1000ms 02:52:18.275 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Uncrustables | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she tackles the beloved Smucker’s Uncrustables, giving them a creative, from-scratch makeover. Claire takes no shortcuts, making her own homemade white bread, peanut butter, and jelly, transforming this nostalgic lunchbox staple into something truly special. If you’re a fan of classic snacks and curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive twist on this timeless favorite.\n\n#clairesaffitz #homemade #uncrustables \n\nChapters:\n00:00 Intro\n00:54 How does Claire Saffitz make a PBJ?\n01:50 Taste test\n02:19 Basic Components\n02:48 Reading the Ingredients\n03:50 Game Plan\n04:32 Soft White Bread\n06:31 Cal calls Uncrustables\n06:59 Peanut butter\n13:44 Grape Jelly\n18:10 Assembly\n26:47 Comparison\n28:58 Cat Cam\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nSOFT WHITE BREAD\nMakes 1 loaf\n\nTANGZHONG\n½ cup whole milk\n½ cup water\n50g (6 tablespoons) bread flour\n\nDOUGH\n3 cups (390g) bread flour, plus more, if needed, for work surface\n¼ cup water\n¼ cup milk \n2 tablespoons granulated sugar\n4 tablespoons neutral oil\n9g kosher salt (2½ teaspoons Diamond Crystal kosher salt)\n2 teaspoons instant yeast\n\nGrape Jelly\n2 lbs green apples\n1 quart 100% Concord grape juice\n1 cup sugar\n2 tablespoons lemon juice\n\nPeanut Butter\n3 cups roasted salted peanuts, toasted until golden brown\nGenerous pinch of salt\n2 teaspoons of honey", "duration" => 1750, "filename" => "/downloads/shows/Claire Recreates/Season 2024/s2024e092500 - I Tried Making Homemade Uncrustables | Claire Recreates.mkv", "id" => "3eIbzifSZYY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3eIbzifSZYY", "playlist_index" => 5, "timestamp" => 1727269205, "title" => "I Tried Making Homemade Uncrustables | Claire Recreates", "upload_date" => "20240925"} 02:52:18.276 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1004.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:18.277 [debug] QUERY OK source="sources" db=0.5ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:18.277 [debug] QUERY OK source="media_items" db=0.2ms idle=1004.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-25 13:00:05Z], 9] 02:52:18.281 [debug] QUERY OK source="media_items" db=3.1ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Uncrustables | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she tackles the beloved Smucker’s Uncrustables, giving them a creative, from-scratch makeover. Claire takes no shortcuts, making her own homemade white bread, peanut butter, and jelly, transforming this nostalgic lunchbox staple into something truly special. If you’re a fan of classic snacks and curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive twist on this timeless favorite.\n\n#clairesaffitz #homemade #uncrustables \n\nChapters:\n00:00 Intro\n00:54 How does Claire Saffitz make a PBJ?\n01:50 Taste test\n02:19 Basic Components\n02:48 Reading the Ingredients\n03:50 Game Plan\n04:32 Soft White Bread\n06:31 Cal calls Uncrustables\n06:59 Peanut butter\n13:44 Grape Jelly\n18:10 Assembly\n26:47 Comparison\n28:58 Cat Cam\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nSOFT WHITE BREAD\nMakes 1 loaf\n\nTANGZHONG\n½ cup whole milk\n½ cup water\n50g (6 tablespoons) bread flour\n\nDOUGH\n3 cups (390g) bread flour, plus more, if needed, for work surface\n¼ cup water\n¼ cup milk \n2 tablespoons granulated sugar\n4 tablespoons neutral oil\n9g kosher salt (2½ teaspoons Diamond Crystal kosher salt)\n2 teaspoons instant yeast\n\nGrape Jelly\n2 lbs green apples\n1 quart 100% Concord grape juice\n1 cup sugar\n2 tablespoons lemon juice\n\nPeanut Butter\n3 cups roasted salted peanuts, toasted until golden brown\nGenerous pinch of salt\n2 teaspoons of honey", "I Tried Making Homemade Uncrustables | Claire Recreates", "a19a64f1-ae62-41e3-a7a3-dad4cde4de0c", "3eIbzifSZYY", false, 1750, false, "https://www.youtube.com/watch?v=3eIbzifSZYY", 5, "/downloads/shows/Claire Recreates/Season 2024/s2024e092500 - I Tried Making Homemade Uncrustables | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-09-25 13:00:05Z], ~U[2026-10-17 00:52:18Z], ~U[2026-10-17 00:52:18Z], "I Tried Making Homemade Uncrustables | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she tackles the beloved Smucker’s Uncrustables, giving them a creative, from-scratch makeover. Claire takes no shortcuts, making her own homemade white bread, peanut butter, and jelly, transforming this nostalgic lunchbox staple into something truly special. If you’re a fan of classic snacks and curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive twist on this timeless favorite.\n\n#clairesaffitz #homemade #uncrustables \n\nChapters:\n00:00 Intro\n00:54 How does Claire Saffitz make a PBJ?\n01:50 Taste test\n02:19 Basic Components\n02:48 Reading the Ingredients\n03:50 Game Plan\n04:32 Soft White Bread\n06:31 Cal calls Uncrustables\n06:59 Peanut butter\n13:44 Grape Jelly\n18:10 Assembly\n26:47 Comparison\n28:58 Cat Cam\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nSOFT WHITE BREAD\nMakes 1 loaf\n\nTANGZHONG\n½ cup whole milk\n½ cup water\n50g (6 tablespoons) bread flour\n\nDOUGH\n3 cups (390g) bread flour, plus more, if needed, for work surface\n¼ cup water\n¼ cup milk \n2 tablespoons granulated sugar\n4 tablespoons neutral oil\n9g kosher salt (2½ teaspoons Diamond Crystal kosher salt)\n2 teaspoons instant yeast\n\nGrape Jelly\n2 lbs green apples\n1 quart 100% Concord grape juice\n1 cup sugar\n2 tablespoons lemon juice\n\nPeanut Butter\n3 cups roasted salted peanuts, toasted until golden brown\nGenerous pinch of salt\n2 teaspoons of honey", "I Tried Making Homemade Uncrustables | Claire Recreates", "3eIbzifSZYY", 1750, false, "https://www.youtube.com/watch?v=3eIbzifSZYY", "/downloads/shows/Claire Recreates/Season 2024/s2024e092500 - I Tried Making Homemade Uncrustables | Claire Recreates.mkv", false, 9, ~U[2024-09-25 13:00:05Z]] 02:52:18.282 [debug] QUERY OK source="sources" db=0.1ms idle=71.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:18.282 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:18.283 [debug] QUERY OK source="media_items" db=0.2ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29418] 02:52:18.283 [debug] Current batch of media processed. Will check again in 1000ms 02:52:19.283 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she steps out to explore restaurant staples, starting with the iconic McDonald’s Apple Pie. Claire meticulously dissects the fast-food favorite, recreating it from scratch with her own version of a hand pie. From crafting a flaky, golden dough to making a perfectly spiced apple filling, Claire transforms this nostalgic dessert into a homemade masterpiece. If you love classic treats and are curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless favorite.\n\n#clairesaffitz #mcdonalds #applepie \n\nChapters:\n00:00 Intro\n00:30 McDonald’s Drive-Thru\n02:14 Back to the kitchen\n02:51 Measurements\n04:36 How To Make Baked Apple Pie\n04:49 Reading the Ingredients\n05:23 Doing some research\n05:49 How To Make Pastry\n09:47 How To Make Apple Filling\n21:09 Testing the lattice\n24:39 Assembly\n28:43 Baking\n30:26 McDonald’s vs Claire Saffitz\n32:18 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1957, "filename" => "/downloads/shows/Claire Recreates/Season 2024/s2024e102400 - I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates.mkv", "id" => "JPcLcSbYL94", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JPcLcSbYL94", "playlist_index" => 6, "timestamp" => 1729789223, "title" => "I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates", "upload_date" => "20241024"} 02:52:19.284 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:19.284 [debug] QUERY OK source="sources" db=0.1ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:19.285 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-24 17:00:23Z], 9] 02:52:19.288 [debug] QUERY OK source="media_items" db=2.3ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she steps out to explore restaurant staples, starting with the iconic McDonald’s Apple Pie. Claire meticulously dissects the fast-food favorite, recreating it from scratch with her own version of a hand pie. From crafting a flaky, golden dough to making a perfectly spiced apple filling, Claire transforms this nostalgic dessert into a homemade masterpiece. If you love classic treats and are curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless favorite.\n\n#clairesaffitz #mcdonalds #applepie \n\nChapters:\n00:00 Intro\n00:30 McDonald’s Drive-Thru\n02:14 Back to the kitchen\n02:51 Measurements\n04:36 How To Make Baked Apple Pie\n04:49 Reading the Ingredients\n05:23 Doing some research\n05:49 How To Make Pastry\n09:47 How To Make Apple Filling\n21:09 Testing the lattice\n24:39 Assembly\n28:43 Baking\n30:26 McDonald’s vs Claire Saffitz\n32:18 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates", "c995ffc9-e9bb-42d1-b822-f5ac3de5073f", "JPcLcSbYL94", false, 1957, false, "https://www.youtube.com/watch?v=JPcLcSbYL94", 6, "/downloads/shows/Claire Recreates/Season 2024/s2024e102400 - I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-10-24 17:00:23Z], ~U[2026-10-17 00:52:19Z], ~U[2026-10-17 00:52:19Z], "I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she steps out to explore restaurant staples, starting with the iconic McDonald’s Apple Pie. Claire meticulously dissects the fast-food favorite, recreating it from scratch with her own version of a hand pie. From crafting a flaky, golden dough to making a perfectly spiced apple filling, Claire transforms this nostalgic dessert into a homemade masterpiece. If you love classic treats and are curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless favorite.\n\n#clairesaffitz #mcdonalds #applepie \n\nChapters:\n00:00 Intro\n00:30 McDonald’s Drive-Thru\n02:14 Back to the kitchen\n02:51 Measurements\n04:36 How To Make Baked Apple Pie\n04:49 Reading the Ingredients\n05:23 Doing some research\n05:49 How To Make Pastry\n09:47 How To Make Apple Filling\n21:09 Testing the lattice\n24:39 Assembly\n28:43 Baking\n30:26 McDonald’s vs Claire Saffitz\n32:18 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates", "JPcLcSbYL94", 1957, false, "https://www.youtube.com/watch?v=JPcLcSbYL94", "/downloads/shows/Claire Recreates/Season 2024/s2024e102400 - I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates.mkv", false, 9, ~U[2024-10-24 17:00:23Z]] 02:52:19.288 [debug] QUERY OK source="sources" db=0.1ms idle=77.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:19.289 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:19.289 [debug] QUERY OK source="media_items" db=0.2ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29419] 02:52:19.289 [debug] Current batch of media processed. Will check again in 1000ms 02:52:20.290 [debug] Current batch of media processed. Will check again in 1000ms 02:52:21.291 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Mallomars | Claire Recreates\nOn this special episode of Claire Recreates, Claire Saffitz tackles the beloved Mallomars, a treat adored in the Northeast but deserving of nationwide love. From crafting the perfect graham cracker base to whipping up a fluffy marshmallow and dipping it all in luscious chocolate, Claire brings this classic to life in a way only she can. If you love reimagined classics and want to celebrate the joy of homemade desserts, this episode is a must-watch. Don’t miss Claire’s creative take on this iconic treat—perfect for the holiday season! Happy Thanksgiving! We’re incredibly thankful for everyone who has joined us on this channel.\n\n#clairesaffitz #mallomars #smores #chocolate \n\nChapters:\n00:00 Intro\n00:25 Mallomars\n02:06 Measurements\n02:42 Ingredients\n03:30 Game plan\n03:58 Cookie base\n15:59 Marshmallow topper\n23:37 Assemble cookies\n24:59 Temper chocolate & enrobe\n29:27 Snap test\n30:03 Comparison\n31:53 Harris review\n32:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1971, "filename" => "/downloads/shows/Claire Recreates/Season 2024/s2024e112800 - I Tried Making Homemade Mallomars | Claire Recreates.mkv", "id" => "Qh9zncazwM8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Qh9zncazwM8", "playlist_index" => 7, "timestamp" => 1732805102, "title" => "I Tried Making Homemade Mallomars | Claire Recreates", "upload_date" => "20241128"} 02:52:21.292 [debug] QUERY OK source="sources" db=0.3ms idle=526.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:21.292 [debug] QUERY OK source="sources" db=0.2ms idle=527.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:21.293 [debug] QUERY OK source="media_items" db=0.2ms idle=527.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-28 14:45:02Z], 9] 02:52:21.296 [debug] QUERY OK source="media_items" db=2.3ms idle=528.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Mallomars | Claire Recreates\nOn this special episode of Claire Recreates, Claire Saffitz tackles the beloved Mallomars, a treat adored in the Northeast but deserving of nationwide love. From crafting the perfect graham cracker base to whipping up a fluffy marshmallow and dipping it all in luscious chocolate, Claire brings this classic to life in a way only she can. If you love reimagined classics and want to celebrate the joy of homemade desserts, this episode is a must-watch. Don’t miss Claire’s creative take on this iconic treat—perfect for the holiday season! Happy Thanksgiving! We’re incredibly thankful for everyone who has joined us on this channel.\n\n#clairesaffitz #mallomars #smores #chocolate \n\nChapters:\n00:00 Intro\n00:25 Mallomars\n02:06 Measurements\n02:42 Ingredients\n03:30 Game plan\n03:58 Cookie base\n15:59 Marshmallow topper\n23:37 Assemble cookies\n24:59 Temper chocolate & enrobe\n29:27 Snap test\n30:03 Comparison\n31:53 Harris review\n32:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Mallomars | Claire Recreates", "fe14509d-5173-4d5d-85b5-27af2e9dd0f6", "Qh9zncazwM8", false, 1971, false, "https://www.youtube.com/watch?v=Qh9zncazwM8", 7, "/downloads/shows/Claire Recreates/Season 2024/s2024e112800 - I Tried Making Homemade Mallomars | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-11-28 14:45:02Z], ~U[2026-10-17 00:52:21Z], ~U[2026-10-17 00:52:21Z], "I Tried Making Homemade Mallomars | Claire Recreates\nOn this special episode of Claire Recreates, Claire Saffitz tackles the beloved Mallomars, a treat adored in the Northeast but deserving of nationwide love. From crafting the perfect graham cracker base to whipping up a fluffy marshmallow and dipping it all in luscious chocolate, Claire brings this classic to life in a way only she can. If you love reimagined classics and want to celebrate the joy of homemade desserts, this episode is a must-watch. Don’t miss Claire’s creative take on this iconic treat—perfect for the holiday season! Happy Thanksgiving! We’re incredibly thankful for everyone who has joined us on this channel.\n\n#clairesaffitz #mallomars #smores #chocolate \n\nChapters:\n00:00 Intro\n00:25 Mallomars\n02:06 Measurements\n02:42 Ingredients\n03:30 Game plan\n03:58 Cookie base\n15:59 Marshmallow topper\n23:37 Assemble cookies\n24:59 Temper chocolate & enrobe\n29:27 Snap test\n30:03 Comparison\n31:53 Harris review\n32:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Mallomars | Claire Recreates", "Qh9zncazwM8", 1971, false, "https://www.youtube.com/watch?v=Qh9zncazwM8", "/downloads/shows/Claire Recreates/Season 2024/s2024e112800 - I Tried Making Homemade Mallomars | Claire Recreates.mkv", false, 9, ~U[2024-11-28 14:45:02Z]] 02:52:21.296 [debug] QUERY OK source="sources" db=0.2ms idle=82.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:21.297 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:21.298 [debug] QUERY OK source="media_items" db=0.2ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29420] 02:52:21.298 [debug] Current batch of media processed. Will check again in 1000ms 02:52:22.298 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Milano Cookies | Claire Recreates\nIn this special holiday episode of Claire Recreates, Claire Saffitz takes on the beloved Pepperidge Farm Milano Cookies, a holiday favorite that deserves a homemade makeover. Claire is determined to recreate the classic cookie, from baking the perfect buttery, delicate biscuit to making a smooth, decadent chocolate filling. With her signature flair, Claire transforms this iconic treat into a homemade version that’s even more irresistible than the original. If you love reimagined classics and want to impress your guests with a holiday dessert that’s both nostalgic and elevated, this episode is a must-watch. Don’t miss Claire’s delicious twist on the Milano Cookie—perfect for celebrating the season! As we close out 2024, we’re incredibly thankful for everyone who’s supported this channel. Happy Holidays!\n\n#clairesaffitz #cookies #dessert \n\nChapters:\n00:00 Intro\n00:26 Milano cookies\n02:08 Taste test\n02:46 Measurements\n03:54 Reading the ingredients\n04:54 Game plan\n05:22 Harris' Milano Tip\n06:12 Make & bake cookies\n07:47 Making the batter\n09:47 Piping the cookies\n13:36 Making cookie improvements\n29:33 Make mint layer\n31:55 Temper chocolate\n33:29 Assembly\n35:06 Comparison \n36:24 Harris’ review\n36:56 Conclusion\n37:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 2271, "filename" => "/downloads/shows/Claire Recreates/Season 2024/s2024e123100 - I Tried Making Homemade Milano Cookies | Claire Recreates.mkv", "id" => "L_Xu-Tt7fHA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=L_Xu-Tt7fHA", "playlist_index" => 8, "timestamp" => 1735657227, "title" => "I Tried Making Homemade Milano Cookies | Claire Recreates", "upload_date" => "20241231"} 02:52:22.299 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:22.299 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:22.300 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-31 15:00:27Z], 9] 02:52:22.303 [debug] QUERY OK source="media_items" db=2.5ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Milano Cookies | Claire Recreates\nIn this special holiday episode of Claire Recreates, Claire Saffitz takes on the beloved Pepperidge Farm Milano Cookies, a holiday favorite that deserves a homemade makeover. Claire is determined to recreate the classic cookie, from baking the perfect buttery, delicate biscuit to making a smooth, decadent chocolate filling. With her signature flair, Claire transforms this iconic treat into a homemade version that’s even more irresistible than the original. If you love reimagined classics and want to impress your guests with a holiday dessert that’s both nostalgic and elevated, this episode is a must-watch. Don’t miss Claire’s delicious twist on the Milano Cookie—perfect for celebrating the season! As we close out 2024, we’re incredibly thankful for everyone who’s supported this channel. Happy Holidays!\n\n#clairesaffitz #cookies #dessert \n\nChapters:\n00:00 Intro\n00:26 Milano cookies\n02:08 Taste test\n02:46 Measurements\n03:54 Reading the ingredients\n04:54 Game plan\n05:22 Harris' Milano Tip\n06:12 Make & bake cookies\n07:47 Making the batter\n09:47 Piping the cookies\n13:36 Making cookie improvements\n29:33 Make mint layer\n31:55 Temper chocolate\n33:29 Assembly\n35:06 Comparison \n36:24 Harris’ review\n36:56 Conclusion\n37:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Milano Cookies | Claire Recreates", "22394fdd-959e-40ec-a66e-5aa2a3e41dbd", "L_Xu-Tt7fHA", false, 2271, false, "https://www.youtube.com/watch?v=L_Xu-Tt7fHA", 8, "/downloads/shows/Claire Recreates/Season 2024/s2024e123100 - I Tried Making Homemade Milano Cookies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-12-31 15:00:27Z], ~U[2026-10-17 00:52:22Z], ~U[2026-10-17 00:52:22Z], "I Tried Making Homemade Milano Cookies | Claire Recreates\nIn this special holiday episode of Claire Recreates, Claire Saffitz takes on the beloved Pepperidge Farm Milano Cookies, a holiday favorite that deserves a homemade makeover. Claire is determined to recreate the classic cookie, from baking the perfect buttery, delicate biscuit to making a smooth, decadent chocolate filling. With her signature flair, Claire transforms this iconic treat into a homemade version that’s even more irresistible than the original. If you love reimagined classics and want to impress your guests with a holiday dessert that’s both nostalgic and elevated, this episode is a must-watch. Don’t miss Claire’s delicious twist on the Milano Cookie—perfect for celebrating the season! As we close out 2024, we’re incredibly thankful for everyone who’s supported this channel. Happy Holidays!\n\n#clairesaffitz #cookies #dessert \n\nChapters:\n00:00 Intro\n00:26 Milano cookies\n02:08 Taste test\n02:46 Measurements\n03:54 Reading the ingredients\n04:54 Game plan\n05:22 Harris' Milano Tip\n06:12 Make & bake cookies\n07:47 Making the batter\n09:47 Piping the cookies\n13:36 Making cookie improvements\n29:33 Make mint layer\n31:55 Temper chocolate\n33:29 Assembly\n35:06 Comparison \n36:24 Harris’ review\n36:56 Conclusion\n37:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Milano Cookies | Claire Recreates", "L_Xu-Tt7fHA", 2271, false, "https://www.youtube.com/watch?v=L_Xu-Tt7fHA", "/downloads/shows/Claire Recreates/Season 2024/s2024e123100 - I Tried Making Homemade Milano Cookies | Claire Recreates.mkv", false, 9, ~U[2024-12-31 15:00:27Z]] 02:52:22.304 [debug] QUERY OK source="sources" db=0.2ms idle=88.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:22.304 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:22.305 [debug] QUERY OK source="media_items" db=0.2ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29421] 02:52:22.305 [debug] Current batch of media processed. Will check again in 1000ms 02:52:23.306 [debug] Current batch of media processed. Will check again in 1000ms 02:52:24.307 [debug] Current batch of media processed. Will check again in 1000ms 02:52:25.308 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz dives into beloved childhood snacks and iconic treats, adding her own creative flair. In today’s episode, she focuses on the classic Little Debbie Oatmeal Creme Pies, transforming them with a homemade twist. Join Claire as she reimagines this nostalgic favorite, sharing mouthwatering recipes perfect for home baking enthusiasts. If you have a fondness for your favorite snacks and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless treat.\n\n#clairesaffitz #oatmeal #pie \n\nChapters:\n\n00:00 Intro\n01:10 Measurements\n01:29 Smell and taste test\n02:22 Ingredients\n03:42 Game plan\n03:49 Make cookie dough + bake\n13:21 Make adjustments to cookies\n22:11 Marshmallow cream\n25:29 Assemble\n26:19 Comparison\n27:55 Harris review\n28:32 Conclusion\n29:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n (¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1½ cups all-purpose flour\n2 teaspoons baking soda\n1 teaspoon kosher salt\n¾ teaspoon cinnamon\nPinch of ground cloves\n8 tablespoons (1 stick) unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon King Arthur Pure Vanilla Extract", "duration" => 1755, "filename" => "/downloads/shows/Claire Recreates/Season 2024/s2024e083000 - I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates.mkv", "id" => "qX5AKIh2x_4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qX5AKIh2x_4", "playlist_index" => 9, "timestamp" => 1725026449, "title" => "I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates", "upload_date" => "20240830"} 02:52:25.309 [debug] QUERY OK source="sources" db=0.4ms idle=1543.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:25.310 [debug] QUERY OK source="sources" db=0.2ms idle=1544.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:25.310 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1544.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-30 14:00:49Z], 9] 02:52:25.314 [debug] QUERY OK source="media_items" db=3.0ms idle=1092.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz dives into beloved childhood snacks and iconic treats, adding her own creative flair. In today’s episode, she focuses on the classic Little Debbie Oatmeal Creme Pies, transforming them with a homemade twist. Join Claire as she reimagines this nostalgic favorite, sharing mouthwatering recipes perfect for home baking enthusiasts. If you have a fondness for your favorite snacks and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless treat.\n\n#clairesaffitz #oatmeal #pie \n\nChapters:\n\n00:00 Intro\n01:10 Measurements\n01:29 Smell and taste test\n02:22 Ingredients\n03:42 Game plan\n03:49 Make cookie dough + bake\n13:21 Make adjustments to cookies\n22:11 Marshmallow cream\n25:29 Assemble\n26:19 Comparison\n27:55 Harris review\n28:32 Conclusion\n29:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n (¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1½ cups all-purpose flour\n2 teaspoons baking soda\n1 teaspoon kosher salt\n¾ teaspoon cinnamon\nPinch of ground cloves\n8 tablespoons (1 stick) unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon King Arthur Pure Vanilla Extract", "I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates", "282b98de-4665-4267-9cc4-41263b439780", "qX5AKIh2x_4", false, 1755, false, "https://www.youtube.com/watch?v=qX5AKIh2x_4", 9, "/downloads/shows/Claire Recreates/Season 2024/s2024e083000 - I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-08-30 14:00:49Z], ~U[2026-10-17 00:52:25Z], ~U[2026-10-17 00:52:25Z], "I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz dives into beloved childhood snacks and iconic treats, adding her own creative flair. In today’s episode, she focuses on the classic Little Debbie Oatmeal Creme Pies, transforming them with a homemade twist. Join Claire as she reimagines this nostalgic favorite, sharing mouthwatering recipes perfect for home baking enthusiasts. If you have a fondness for your favorite snacks and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless treat.\n\n#clairesaffitz #oatmeal #pie \n\nChapters:\n\n00:00 Intro\n01:10 Measurements\n01:29 Smell and taste test\n02:22 Ingredients\n03:42 Game plan\n03:49 Make cookie dough + bake\n13:21 Make adjustments to cookies\n22:11 Marshmallow cream\n25:29 Assemble\n26:19 Comparison\n27:55 Harris review\n28:32 Conclusion\n29:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n (¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1½ cups all-purpose flour\n2 teaspoons baking soda\n1 teaspoon kosher salt\n¾ teaspoon cinnamon\nPinch of ground cloves\n8 tablespoons (1 stick) unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon King Arthur Pure Vanilla Extract", "I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates", "qX5AKIh2x_4", 1755, false, "https://www.youtube.com/watch?v=qX5AKIh2x_4", "/downloads/shows/Claire Recreates/Season 2024/s2024e083000 - I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates.mkv", false, 9, ~U[2024-08-30 14:00:49Z]] 02:52:25.315 [debug] QUERY OK source="sources" db=0.2ms idle=95.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:25.315 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:25.316 [debug] QUERY OK source="media_items" db=0.2ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29422] 02:52:25.316 [debug] Current batch of media processed. Will check again in 1000ms 02:52:26.317 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on the challenge of recreating beloved childhood snacks and iconic treats—but this time, she’s in new territory. In today’s episode, Claire tackles the Kinder Bueno, attempting to craft the crispy, creamy chocolate bar from scratch—all from a rental kitchen. With limited tools and unfamiliar surroundings, she puts her skills to the test, proving that great recipes can come together anywhere. If you love nostalgic sweets and the thrill of recipe experimentation, this episode is a must-watch!\n\n#kinderbueno #clairesaffitz #chocolate \n\nChapters\n00:00 Intro\n00:26 How To Make Kinder Bueno\n02:46 Measurements\n02:59 Taste test\n04:53 Ingredients\n06:14 Molds\n11:07 How To Make Kinder Bueno Wafers\n18:10 100% polycarbonate\n20:04 Plan B?\n21:37 Lessons learned\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1385, "filename" => "/downloads/shows/Claire Recreates/Season 2025/s2025e032000 - I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates.mkv", "id" => "ipwx-AzyDNk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ipwx-AzyDNk", "playlist_index" => 10, "timestamp" => 1742479230, "title" => "I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates", "upload_date" => "20250320"} 02:52:26.318 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:26.319 [debug] QUERY OK source="sources" db=0.5ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:26.320 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-20 14:00:30Z], 9] 02:52:26.323 [debug] QUERY OK source="media_items" db=2.2ms idle=1004.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on the challenge of recreating beloved childhood snacks and iconic treats—but this time, she’s in new territory. In today’s episode, Claire tackles the Kinder Bueno, attempting to craft the crispy, creamy chocolate bar from scratch—all from a rental kitchen. With limited tools and unfamiliar surroundings, she puts her skills to the test, proving that great recipes can come together anywhere. If you love nostalgic sweets and the thrill of recipe experimentation, this episode is a must-watch!\n\n#kinderbueno #clairesaffitz #chocolate \n\nChapters\n00:00 Intro\n00:26 How To Make Kinder Bueno\n02:46 Measurements\n02:59 Taste test\n04:53 Ingredients\n06:14 Molds\n11:07 How To Make Kinder Bueno Wafers\n18:10 100% polycarbonate\n20:04 Plan B?\n21:37 Lessons learned\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates", "038e5c9f-f76d-4851-8c0c-ab3aa581fc54", "ipwx-AzyDNk", false, 1385, false, "https://www.youtube.com/watch?v=ipwx-AzyDNk", 10, "/downloads/shows/Claire Recreates/Season 2025/s2025e032000 - I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-03-20 14:00:30Z], ~U[2026-10-17 00:52:26Z], ~U[2026-10-17 00:52:26Z], "I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on the challenge of recreating beloved childhood snacks and iconic treats—but this time, she’s in new territory. In today’s episode, Claire tackles the Kinder Bueno, attempting to craft the crispy, creamy chocolate bar from scratch—all from a rental kitchen. With limited tools and unfamiliar surroundings, she puts her skills to the test, proving that great recipes can come together anywhere. If you love nostalgic sweets and the thrill of recipe experimentation, this episode is a must-watch!\n\n#kinderbueno #clairesaffitz #chocolate \n\nChapters\n00:00 Intro\n00:26 How To Make Kinder Bueno\n02:46 Measurements\n02:59 Taste test\n04:53 Ingredients\n06:14 Molds\n11:07 How To Make Kinder Bueno Wafers\n18:10 100% polycarbonate\n20:04 Plan B?\n21:37 Lessons learned\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates", "ipwx-AzyDNk", 1385, false, "https://www.youtube.com/watch?v=ipwx-AzyDNk", "/downloads/shows/Claire Recreates/Season 2025/s2025e032000 - I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates.mkv", false, 9, ~U[2025-03-20 14:00:30Z]] 02:52:26.324 [debug] QUERY OK source="sources" db=0.1ms idle=102.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:26.324 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:26.325 [debug] QUERY OK source="media_items" db=0.2ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29423] 02:52:26.325 [debug] Current batch of media processed. Will check again in 1000ms 02:52:27.325 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Australian Tim Tams | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on one of the most iconic Australian snacks of all time — Tim Tams. Known for their rich chocolate coating, creamy filling, and signature crunchy biscuit texture, Tim Tams are a beloved treat across Australia and beyond. Claire attempts to recreate Tim Tams from scratch, using her precise baking techniques and deep understanding of pastry science to reverse-engineer this layered chocolate biscuit sandwich at home.\n\nWatch as Claire tests different chocolate biscuit recipes, explores the mechanics of the perfect Tim Tam Slam, and tackles the challenge of replicating a store-bought snack with homemade methods. This episode blends Claire’s signature charm with technical baking as she breaks down how to make homemade Tim Tams, one of the most recognizable Australian treats.\n\nIf you’re a fan of nostalgic snack recipes, iconic cookie recreations, or just love watching detailed step-by-step baking challenges, this episode is for you.\n\n#ClaireSaffitz #ClaireRecreates #TimTams #ChocolateBiscuits #BakingChallenge #dessertperson \n\nChapters\n\n00:00 Intro\n00:18 Tim Tams\n01:53 Taste test\n03:56 Measurements\n04:59 Reading the Ingredients\n06:25 Game plan\n06:42 Make cookies / biscuits\n14:14 Use pasta roller\n17:31 Make filling\n19:13 Assemble\n22:02 Enrobe\n23:13 Comparison\n25:38 Cat cam\n\nChocolate biscuit\n1½ cups all-purpose flour\n½ cup unsweetened cocoa powder\n2 tablespoon malted milk powder \n¾ teaspoon kosher salt\n½ teaspoon baking powder \n1 stick unsalted butter, at cool room temperature \n¾ cup sugar\n1 large egg\n2 teaspoons pure vanilla extract\n\nChocolate cream filling: \n150g milk chocolate, chopped\n150g heavy cream\nSalt\n\nChocolate coating \nDark chocolate\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1555, "filename" => "/downloads/shows/Claire Recreates/Season 2025/s2025e050100 - I Tried Making Homemade Australian Tim Tams | Claire Recreates.mkv", "id" => "X5-yAJszoB0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=X5-yAJszoB0", "playlist_index" => 11, "timestamp" => 1746108048, "title" => "I Tried Making Homemade Australian Tim Tams | Claire Recreates", "upload_date" => "20250501"} 02:52:27.326 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:27.327 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:27.327 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-01 14:00:48Z], 9] 02:52:27.330 [debug] QUERY OK source="media_items" db=2.5ms idle=1002.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Australian Tim Tams | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on one of the most iconic Australian snacks of all time — Tim Tams. Known for their rich chocolate coating, creamy filling, and signature crunchy biscuit texture, Tim Tams are a beloved treat across Australia and beyond. Claire attempts to recreate Tim Tams from scratch, using her precise baking techniques and deep understanding of pastry science to reverse-engineer this layered chocolate biscuit sandwich at home.\n\nWatch as Claire tests different chocolate biscuit recipes, explores the mechanics of the perfect Tim Tam Slam, and tackles the challenge of replicating a store-bought snack with homemade methods. This episode blends Claire’s signature charm with technical baking as she breaks down how to make homemade Tim Tams, one of the most recognizable Australian treats.\n\nIf you’re a fan of nostalgic snack recipes, iconic cookie recreations, or just love watching detailed step-by-step baking challenges, this episode is for you.\n\n#ClaireSaffitz #ClaireRecreates #TimTams #ChocolateBiscuits #BakingChallenge #dessertperson \n\nChapters\n\n00:00 Intro\n00:18 Tim Tams\n01:53 Taste test\n03:56 Measurements\n04:59 Reading the Ingredients\n06:25 Game plan\n06:42 Make cookies / biscuits\n14:14 Use pasta roller\n17:31 Make filling\n19:13 Assemble\n22:02 Enrobe\n23:13 Comparison\n25:38 Cat cam\n\nChocolate biscuit\n1½ cups all-purpose flour\n½ cup unsweetened cocoa powder\n2 tablespoon malted milk powder \n¾ teaspoon kosher salt\n½ teaspoon baking powder \n1 stick unsalted butter, at cool room temperature \n¾ cup sugar\n1 large egg\n2 teaspoons pure vanilla extract\n\nChocolate cream filling: \n150g milk chocolate, chopped\n150g heavy cream\nSalt\n\nChocolate coating \nDark chocolate\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Australian Tim Tams | Claire Recreates", "3698a91d-2479-437e-bd17-9c9e921f9911", "X5-yAJszoB0", false, 1555, false, "https://www.youtube.com/watch?v=X5-yAJszoB0", 11, "/downloads/shows/Claire Recreates/Season 2025/s2025e050100 - I Tried Making Homemade Australian Tim Tams | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-05-01 14:00:48Z], ~U[2026-10-17 00:52:27Z], ~U[2026-10-17 00:52:27Z], "I Tried Making Homemade Australian Tim Tams | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on one of the most iconic Australian snacks of all time — Tim Tams. Known for their rich chocolate coating, creamy filling, and signature crunchy biscuit texture, Tim Tams are a beloved treat across Australia and beyond. Claire attempts to recreate Tim Tams from scratch, using her precise baking techniques and deep understanding of pastry science to reverse-engineer this layered chocolate biscuit sandwich at home.\n\nWatch as Claire tests different chocolate biscuit recipes, explores the mechanics of the perfect Tim Tam Slam, and tackles the challenge of replicating a store-bought snack with homemade methods. This episode blends Claire’s signature charm with technical baking as she breaks down how to make homemade Tim Tams, one of the most recognizable Australian treats.\n\nIf you’re a fan of nostalgic snack recipes, iconic cookie recreations, or just love watching detailed step-by-step baking challenges, this episode is for you.\n\n#ClaireSaffitz #ClaireRecreates #TimTams #ChocolateBiscuits #BakingChallenge #dessertperson \n\nChapters\n\n00:00 Intro\n00:18 Tim Tams\n01:53 Taste test\n03:56 Measurements\n04:59 Reading the Ingredients\n06:25 Game plan\n06:42 Make cookies / biscuits\n14:14 Use pasta roller\n17:31 Make filling\n19:13 Assemble\n22:02 Enrobe\n23:13 Comparison\n25:38 Cat cam\n\nChocolate biscuit\n1½ cups all-purpose flour\n½ cup unsweetened cocoa powder\n2 tablespoon malted milk powder \n¾ teaspoon kosher salt\n½ teaspoon baking powder \n1 stick unsalted butter, at cool room temperature \n¾ cup sugar\n1 large egg\n2 teaspoons pure vanilla extract\n\nChocolate cream filling: \n150g milk chocolate, chopped\n150g heavy cream\nSalt\n\nChocolate coating \nDark chocolate\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Australian Tim Tams | Claire Recreates", "X5-yAJszoB0", 1555, false, "https://www.youtube.com/watch?v=X5-yAJszoB0", "/downloads/shows/Claire Recreates/Season 2025/s2025e050100 - I Tried Making Homemade Australian Tim Tams | Claire Recreates.mkv", false, 9, ~U[2025-05-01 14:00:48Z]] 02:52:27.331 [debug] QUERY OK source="sources" db=0.2ms idle=108.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:27.331 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:27.332 [debug] QUERY OK source="media_items" db=0.2ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29434] 02:52:27.332 [debug] Current batch of media processed. Will check again in 1000ms 02:52:28.332 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Tokyo Bananas | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on Japan’s most beloved souvenir treat ... the Tokyo Banana. These soft sponge cakes filled with sweet banana custard are a staple of Japanese train stations, gift shops, and childhood memories. Claire breaks it down step-by-step, making everything from scratch, from the light-as-air sponge cake to the rich banana cream filling.\n\nWhether you’re a Tokyo Banana superfan or discovering this iconic snack for the first time, follow along as Claire gives this classic the Dessert Person™ treatment.\n\n#TokyoBanana #ClaireSaffitz #ClaireRecreates #JapaneseSnacks #BananaCustard #SpongeCakeRecipe #JapaneseBaking #DessertPerson \n\nTOKYO BANANA (Recreates)\n\nSPONGE CAKE\n4 egg yolks, at room temperature\n20g sugar\n40 ml milk \n40g oil\n½ teaspoon vanilla extract\n30g all-purpose flour\n30g cornstarch\n4 egg whites, at room temperature\nPinch of salt \n¼ teaspoon cream of tartar \n60g sugar \n\nBANANA CREAM\n⅓ cup sugar \n3 tablespoons cornstarch\n½ teaspoon Diamond Crystal kosher salt \n4 large egg yolks\n1⅔ cups heavy cream, chilled\n1 cup mashed overripe banana (8.5 oz / 240g), from about 2 medium\n\nChapters\n00:00 Intro\n00:19 Tokyo Banana\n01:05 Smell test\n02:08 Taste test\n02:29 Measurements\n03:56 Reading the ingredients\n05:12 How to make Tokyo Banana\n05:35 Make banana custard + cool\n10:47 How to make chiffon sponge\n17:31 Construction apparatus\n21:57 Assembly + chill\n24:12 Comparison\n26:56 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1634, "filename" => "/downloads/shows/Claire Recreates/Season 2025/s2025e061800 - I Tried Making Homemade Tokyo Bananas | Claire Recreates.mkv", "id" => "RWE_WnFfvcI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RWE_WnFfvcI", "playlist_index" => 12, "timestamp" => 1750255244, "title" => "I Tried Making Homemade Tokyo Bananas | Claire Recreates", "upload_date" => "20250618"} 02:52:28.333 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:28.333 [debug] QUERY OK source="sources" db=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:28.334 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-18 14:00:44Z], 9] 02:52:28.336 [debug] QUERY OK source="media_items" db=1.7ms idle=1002.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Tokyo Bananas | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on Japan’s most beloved souvenir treat ... the Tokyo Banana. These soft sponge cakes filled with sweet banana custard are a staple of Japanese train stations, gift shops, and childhood memories. Claire breaks it down step-by-step, making everything from scratch, from the light-as-air sponge cake to the rich banana cream filling.\n\nWhether you’re a Tokyo Banana superfan or discovering this iconic snack for the first time, follow along as Claire gives this classic the Dessert Person™ treatment.\n\n#TokyoBanana #ClaireSaffitz #ClaireRecreates #JapaneseSnacks #BananaCustard #SpongeCakeRecipe #JapaneseBaking #DessertPerson \n\nTOKYO BANANA (Recreates)\n\nSPONGE CAKE\n4 egg yolks, at room temperature\n20g sugar\n40 ml milk \n40g oil\n½ teaspoon vanilla extract\n30g all-purpose flour\n30g cornstarch\n4 egg whites, at room temperature\nPinch of salt \n¼ teaspoon cream of tartar \n60g sugar \n\nBANANA CREAM\n⅓ cup sugar \n3 tablespoons cornstarch\n½ teaspoon Diamond Crystal kosher salt \n4 large egg yolks\n1⅔ cups heavy cream, chilled\n1 cup mashed overripe banana (8.5 oz / 240g), from about 2 medium\n\nChapters\n00:00 Intro\n00:19 Tokyo Banana\n01:05 Smell test\n02:08 Taste test\n02:29 Measurements\n03:56 Reading the ingredients\n05:12 How to make Tokyo Banana\n05:35 Make banana custard + cool\n10:47 How to make chiffon sponge\n17:31 Construction apparatus\n21:57 Assembly + chill\n24:12 Comparison\n26:56 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Tokyo Bananas | Claire Recreates", "aacba48b-b7ed-4348-b1ac-fffea2c922a7", "RWE_WnFfvcI", false, 1634, false, "https://www.youtube.com/watch?v=RWE_WnFfvcI", 12, "/downloads/shows/Claire Recreates/Season 2025/s2025e061800 - I Tried Making Homemade Tokyo Bananas | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-06-18 14:00:44Z], ~U[2026-10-17 00:52:28Z], ~U[2026-10-17 00:52:28Z], "I Tried Making Homemade Tokyo Bananas | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on Japan’s most beloved souvenir treat ... the Tokyo Banana. These soft sponge cakes filled with sweet banana custard are a staple of Japanese train stations, gift shops, and childhood memories. Claire breaks it down step-by-step, making everything from scratch, from the light-as-air sponge cake to the rich banana cream filling.\n\nWhether you’re a Tokyo Banana superfan or discovering this iconic snack for the first time, follow along as Claire gives this classic the Dessert Person™ treatment.\n\n#TokyoBanana #ClaireSaffitz #ClaireRecreates #JapaneseSnacks #BananaCustard #SpongeCakeRecipe #JapaneseBaking #DessertPerson \n\nTOKYO BANANA (Recreates)\n\nSPONGE CAKE\n4 egg yolks, at room temperature\n20g sugar\n40 ml milk \n40g oil\n½ teaspoon vanilla extract\n30g all-purpose flour\n30g cornstarch\n4 egg whites, at room temperature\nPinch of salt \n¼ teaspoon cream of tartar \n60g sugar \n\nBANANA CREAM\n⅓ cup sugar \n3 tablespoons cornstarch\n½ teaspoon Diamond Crystal kosher salt \n4 large egg yolks\n1⅔ cups heavy cream, chilled\n1 cup mashed overripe banana (8.5 oz / 240g), from about 2 medium\n\nChapters\n00:00 Intro\n00:19 Tokyo Banana\n01:05 Smell test\n02:08 Taste test\n02:29 Measurements\n03:56 Reading the ingredients\n05:12 How to make Tokyo Banana\n05:35 Make banana custard + cool\n10:47 How to make chiffon sponge\n17:31 Construction apparatus\n21:57 Assembly + chill\n24:12 Comparison\n26:56 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Tokyo Bananas | Claire Recreates", "RWE_WnFfvcI", 1634, false, "https://www.youtube.com/watch?v=RWE_WnFfvcI", "/downloads/shows/Claire Recreates/Season 2025/s2025e061800 - I Tried Making Homemade Tokyo Bananas | Claire Recreates.mkv", false, 9, ~U[2025-06-18 14:00:44Z]] 02:52:28.337 [debug] QUERY OK source="sources" db=0.2ms idle=113.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:28.337 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:28.338 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [43875] 02:52:28.338 [debug] Current batch of media processed. Will check again in 1000ms 02:52:29.338 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates\nJoin Claire Saffitz in this episode of Claire Recreates as she takes on the beloved Mexican snack cake, Gansitos. From fluffy sponge cake to rich strawberry jam, creamy filling, and a decadent chocolate coating, Claire shows you how to recreate this nostalgic treat from scratch. Whether you grew up with Gansitos or are discovering them for the first time, this recipe is a delicious trip down memory lane.\nFilmed with baking techniques and inspired by the original Marinela Gansito, Claire walks through every step, sharing tips, baking science, and fun behind-the-scenes moments. Perfect for fans of Mexican desserts, snack cake lovers, and anyone curious about making iconic treats at home.\n\n#gansitos #cake #clairesaffitz #snackcake #chocolatedessert #strawberry \n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin → softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla extract\n\nSTRAWBERRY JELLY\n\nSPONGE CAKE\n4 large eggs, whites and yolks separated, at room temperature\n½ cup (100g) granulated sugar, divided\n4 tablespoons whole milk (60ml)\n½ teaspoon kosher salt\n¼ teaspoon cream of tartar\n¼ cup neutral oil\n⅔ cup (85g) all-purpose flour\n1 teaspoon vanilla extract\n\nChapters:\n00:00 Intro\n00:29 Gansitos\n00:58 First impressions\n01:19 Smell test\n01:29 Taste test\n01:57 Measurements\n03:17 Reading the Ingredients\n06:26 Game plan\n06:42 Make sprinkles\n09:50 Strawberry jelly\n10:57 Trip to apple orchard\n11:44 Strawberry jelly continued\n12:38 Bake sponge\n21:55 Creme filling\n25:40 Chocolate poured fondant + assembly\n29:37 Comparison\n31:42 Cat cam\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1919, "filename" => "/downloads/shows/Claire Recreates/Season 2025/s2025e081400 - I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates.mkv", "id" => "k9rGZzQswI0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=k9rGZzQswI0", "playlist_index" => 13, "timestamp" => 1755180068, "title" => "I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates", "upload_date" => "20250814"} 02:52:29.339 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:29.340 [debug] QUERY OK source="sources" db=0.1ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:29.340 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-14 14:01:08Z], 9] 02:52:29.343 [debug] QUERY OK source="media_items" db=2.1ms idle=1002.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates\nJoin Claire Saffitz in this episode of Claire Recreates as she takes on the beloved Mexican snack cake, Gansitos. From fluffy sponge cake to rich strawberry jam, creamy filling, and a decadent chocolate coating, Claire shows you how to recreate this nostalgic treat from scratch. Whether you grew up with Gansitos or are discovering them for the first time, this recipe is a delicious trip down memory lane.\nFilmed with baking techniques and inspired by the original Marinela Gansito, Claire walks through every step, sharing tips, baking science, and fun behind-the-scenes moments. Perfect for fans of Mexican desserts, snack cake lovers, and anyone curious about making iconic treats at home.\n\n#gansitos #cake #clairesaffitz #snackcake #chocolatedessert #strawberry \n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin → softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla extract\n\nSTRAWBERRY JELLY\n\nSPONGE CAKE\n4 large eggs, whites and yolks separated, at room temperature\n½ cup (100g) granulated sugar, divided\n4 tablespoons whole milk (60ml)\n½ teaspoon kosher salt\n¼ teaspoon cream of tartar\n¼ cup neutral oil\n⅔ cup (85g) all-purpose flour\n1 teaspoon vanilla extract\n\nChapters:\n00:00 Intro\n00:29 Gansitos\n00:58 First impressions\n01:19 Smell test\n01:29 Taste test\n01:57 Measurements\n03:17 Reading the Ingredients\n06:26 Game plan\n06:42 Make sprinkles\n09:50 Strawberry jelly\n10:57 Trip to apple orchard\n11:44 Strawberry jelly continued\n12:38 Bake sponge\n21:55 Creme filling\n25:40 Chocolate poured fondant + assembly\n29:37 Comparison\n31:42 Cat cam\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates", "df47dcc2-89ce-4edb-a775-301abee85212", "k9rGZzQswI0", false, 1919, false, "https://www.youtube.com/watch?v=k9rGZzQswI0", 13, "/downloads/shows/Claire Recreates/Season 2025/s2025e081400 - I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-08-14 14:01:08Z], ~U[2026-10-17 00:52:29Z], ~U[2026-10-17 00:52:29Z], "I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates\nJoin Claire Saffitz in this episode of Claire Recreates as she takes on the beloved Mexican snack cake, Gansitos. From fluffy sponge cake to rich strawberry jam, creamy filling, and a decadent chocolate coating, Claire shows you how to recreate this nostalgic treat from scratch. Whether you grew up with Gansitos or are discovering them for the first time, this recipe is a delicious trip down memory lane.\nFilmed with baking techniques and inspired by the original Marinela Gansito, Claire walks through every step, sharing tips, baking science, and fun behind-the-scenes moments. Perfect for fans of Mexican desserts, snack cake lovers, and anyone curious about making iconic treats at home.\n\n#gansitos #cake #clairesaffitz #snackcake #chocolatedessert #strawberry \n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin → softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla extract\n\nSTRAWBERRY JELLY\n\nSPONGE CAKE\n4 large eggs, whites and yolks separated, at room temperature\n½ cup (100g) granulated sugar, divided\n4 tablespoons whole milk (60ml)\n½ teaspoon kosher salt\n¼ teaspoon cream of tartar\n¼ cup neutral oil\n⅔ cup (85g) all-purpose flour\n1 teaspoon vanilla extract\n\nChapters:\n00:00 Intro\n00:29 Gansitos\n00:58 First impressions\n01:19 Smell test\n01:29 Taste test\n01:57 Measurements\n03:17 Reading the Ingredients\n06:26 Game plan\n06:42 Make sprinkles\n09:50 Strawberry jelly\n10:57 Trip to apple orchard\n11:44 Strawberry jelly continued\n12:38 Bake sponge\n21:55 Creme filling\n25:40 Chocolate poured fondant + assembly\n29:37 Comparison\n31:42 Cat cam\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates", "k9rGZzQswI0", 1919, false, "https://www.youtube.com/watch?v=k9rGZzQswI0", "/downloads/shows/Claire Recreates/Season 2025/s2025e081400 - I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates.mkv", false, 9, ~U[2025-08-14 14:01:08Z]] 02:52:29.343 [debug] QUERY OK source="sources" db=0.1ms idle=119.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:29.344 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:29.344 [debug] QUERY OK source="media_items" db=0.2ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [62328] 02:52:29.344 [debug] Current batch of media processed. Will check again in 1000ms 02:52:29.887 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:52:30.345 [debug] Current batch of media processed. Will check again in 1000ms 02:52:31.346 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Nutter Butter Cookies | Claire Recreates\nCan Claire Saffitz recreate the iconic Nutter Butter cookie at home? In this episode of Claire Recreates, Claire takes on the challenge of making homemade Nutter Butters completely from scratch. She bakes crunchy peanut shaped cookies and fills them with creamy peanut butter frosting.\n\nFrom mixing the dough to shaping the classic peanut design and testing the filling, Claire shows every step of the process as she compares homemade vs store bought Nutter Butters. Does the DIY version hold up against the nostalgic packaged cookie? Watch to find out.\n\nIf you have ever wondered how to make Nutter Butter cookies at home or wanted to see how they compare to the original, this video has the recipes, techniques, and taste test you are looking for.\n\n#ClaireSaffitz #ClaireRecreates #NutterButter #HomemadeCookies #baking \n\nIngredients:\nDOUGH\n2½ cups all-purpose flour \n½ teaspoon whole wheat flour \n¼ teaspoon baking soda\n1½ teaspoons Diamond Crystal kosher salt\n2 sticks unsalted butter, at room temperature\n1 cup granulated sugar\n1 cup natural smooth peanut butter\n2 large eggs (3.5 oz / 100g)\n1 teaspoon vanilla extract\nFILLING\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nChapters\n00:00 Intro\n00:16 How To Make Nutter Butter Cookies\n00:40 First impressions\n01:53 Ingredients\n02:54 Measurements\n04:01 Wood carving kit\n05:08 Game plan\n05:20 Cookie stamp\n10:02 Make Nutter Butter Cookies\n19:15 Bake\n20:57 Filling\n23:09 Assembly\n23:38 Comparison\n25:23 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1540, "filename" => "/downloads/shows/Claire Recreates/Season 2025/s2025e092600 - I Tried Making Homemade Nutter Butter Cookies | Claire Recreates.mkv", "id" => "ck6D0SdiYA0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ck6D0SdiYA0", "playlist_index" => 14, "timestamp" => 1758895274, "title" => "I Tried Making Homemade Nutter Butter Cookies | Claire Recreates", "upload_date" => "20250926"} 02:52:31.347 [debug] QUERY OK source="sources" db=0.2ms idle=1121.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:31.347 [debug] QUERY OK source="sources" db=0.1ms idle=582.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:31.348 [debug] QUERY OK source="media_items" db=0.2ms idle=582.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-26 14:01:14Z], 9] 02:52:31.355 [debug] QUERY OK source="media_items" db=6.4ms idle=583.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Nutter Butter Cookies | Claire Recreates\nCan Claire Saffitz recreate the iconic Nutter Butter cookie at home? In this episode of Claire Recreates, Claire takes on the challenge of making homemade Nutter Butters completely from scratch. She bakes crunchy peanut shaped cookies and fills them with creamy peanut butter frosting.\n\nFrom mixing the dough to shaping the classic peanut design and testing the filling, Claire shows every step of the process as she compares homemade vs store bought Nutter Butters. Does the DIY version hold up against the nostalgic packaged cookie? Watch to find out.\n\nIf you have ever wondered how to make Nutter Butter cookies at home or wanted to see how they compare to the original, this video has the recipes, techniques, and taste test you are looking for.\n\n#ClaireSaffitz #ClaireRecreates #NutterButter #HomemadeCookies #baking \n\nIngredients:\nDOUGH\n2½ cups all-purpose flour \n½ teaspoon whole wheat flour \n¼ teaspoon baking soda\n1½ teaspoons Diamond Crystal kosher salt\n2 sticks unsalted butter, at room temperature\n1 cup granulated sugar\n1 cup natural smooth peanut butter\n2 large eggs (3.5 oz / 100g)\n1 teaspoon vanilla extract\nFILLING\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nChapters\n00:00 Intro\n00:16 How To Make Nutter Butter Cookies\n00:40 First impressions\n01:53 Ingredients\n02:54 Measurements\n04:01 Wood carving kit\n05:08 Game plan\n05:20 Cookie stamp\n10:02 Make Nutter Butter Cookies\n19:15 Bake\n20:57 Filling\n23:09 Assembly\n23:38 Comparison\n25:23 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Nutter Butter Cookies | Claire Recreates", "469678cd-d856-4470-89f3-a6f73256273f", "ck6D0SdiYA0", false, 1540, false, "https://www.youtube.com/watch?v=ck6D0SdiYA0", 14, "/downloads/shows/Claire Recreates/Season 2025/s2025e092600 - I Tried Making Homemade Nutter Butter Cookies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-09-26 14:01:14Z], ~U[2026-10-17 00:52:31Z], ~U[2026-10-17 00:52:31Z], "I Tried Making Homemade Nutter Butter Cookies | Claire Recreates\nCan Claire Saffitz recreate the iconic Nutter Butter cookie at home? In this episode of Claire Recreates, Claire takes on the challenge of making homemade Nutter Butters completely from scratch. She bakes crunchy peanut shaped cookies and fills them with creamy peanut butter frosting.\n\nFrom mixing the dough to shaping the classic peanut design and testing the filling, Claire shows every step of the process as she compares homemade vs store bought Nutter Butters. Does the DIY version hold up against the nostalgic packaged cookie? Watch to find out.\n\nIf you have ever wondered how to make Nutter Butter cookies at home or wanted to see how they compare to the original, this video has the recipes, techniques, and taste test you are looking for.\n\n#ClaireSaffitz #ClaireRecreates #NutterButter #HomemadeCookies #baking \n\nIngredients:\nDOUGH\n2½ cups all-purpose flour \n½ teaspoon whole wheat flour \n¼ teaspoon baking soda\n1½ teaspoons Diamond Crystal kosher salt\n2 sticks unsalted butter, at room temperature\n1 cup granulated sugar\n1 cup natural smooth peanut butter\n2 large eggs (3.5 oz / 100g)\n1 teaspoon vanilla extract\nFILLING\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nChapters\n00:00 Intro\n00:16 How To Make Nutter Butter Cookies\n00:40 First impressions\n01:53 Ingredients\n02:54 Measurements\n04:01 Wood carving kit\n05:08 Game plan\n05:20 Cookie stamp\n10:02 Make Nutter Butter Cookies\n19:15 Bake\n20:57 Filling\n23:09 Assembly\n23:38 Comparison\n25:23 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Nutter Butter Cookies | Claire Recreates", "ck6D0SdiYA0", 1540, false, "https://www.youtube.com/watch?v=ck6D0SdiYA0", "/downloads/shows/Claire Recreates/Season 2025/s2025e092600 - I Tried Making Homemade Nutter Butter Cookies | Claire Recreates.mkv", false, 9, ~U[2025-09-26 14:01:14Z]] 02:52:31.356 [debug] QUERY OK source="sources" db=0.2ms idle=128.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:31.356 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=8.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:31.357 [debug] QUERY OK source="media_items" db=0.2ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [76761] 02:52:31.357 [debug] Current batch of media processed. Will check again in 1000ms 02:52:32.357 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Many thanks to our sponsor for today’s episode, Cometeer. If you’re interested in trying curated coffees from top roasters like Onyx, Proud Mary, and Intelligentsia, you can save $20 on your Discovery Box order by using the link http://cometeer.com/clairesaffitz . It’s the perfect way to start your morning or to give as a thoughtful gift this holiday season.\n\nI Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates \nIn this episode of Claire Recreates, Claire takes on the new-ish Hostess Iced Pumpkin Cupcake and makes it completely from scratch at home. Every fall, this limited-edition treat shows up in grocery stores and reminds us that pumpkin season has officially started. Claire dives into what makes it so nostalgic - the spiced pumpkin cake, the creamy filling, and that signature orange icing swirl -then recreates each element in her own kitchen.\n\nYou’ll see how she builds the cupcake step by step, from baking the soft pumpkin base to mixing the fluffy cream center and topping it with a smooth icing. She also shares a few tricks for getting the flavor and texture as close as possible to the original. Whether you’ve been waiting all year for pumpkin desserts or just love seeing classic snacks get a homemade twist, this one will make you want to preheat your oven.\n\nWatch until the end to see if Claire can match the look and taste of the real Hostess version, and find out how her homemade cupcakes compare. \n\nSubscribe for more recreations of nostalgic snacks and fall baking recipes, and let us know what Claire should tackle next.\n\n#ClaireRecreates #FallBaking #PumpkinDessert\n\nChapters\n00:00 Intro\n00:27 First impressions\n01:23 Smell test\n01:43 Taste test\n02:16 Measurements\n03:09 Reading the ingredients\n05:07 How To Make Iced Pumpkin Cupcakes\n06:43 How To Bake Cupcakes\n15:01 Coffee break\n16:40 Troubleshooting cupcakes\n19:44 How To Make Icing For Cupcakes\n27:40 Icing + decorating\n29:39 Comparison\n32:41 Cat cam\n\n\nIngredients\n\nCake\n1 cup mashed cooked sugar pumpkin (8.2 oz / 232g)\n⅓ cup milk\n1 teaspoon vanilla extract\n1½ cups all-purpose flour (7 oz / 200g)\n1½ teaspoons baking powder (0.21 oz / 6g)\n½ teaspoon ground cinnamon\n½ teaspoon Chinese five spice powder\n½ teaspoon ground turmeric\n¾ teaspoon Diamond Crystal kosher salt\n2 large eggs (3.5 oz / 100g), at room temperature\n¾ cup sugar (6.2 oz / 175g)\n¼ cup brown sugar\n½ cup neutral oil (3.9 oz / 110g)\n\nMarshmallow Filling\n38g water\n75g granulated sugar\n117g light corn syrup\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla paste\n\nIcing\nConfectioners’ sugar\nSour cream\nCorn syrup\nSalt\nVanilla\n\nSquiggles\nConfectioners’ sugar\nTurmeric\nBeet powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1979, "filename" => "/downloads/shows/Claire Recreates/Season 2025/s2025e102300 - I Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates.mkv", "id" => "-veNfe5ZUF0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-veNfe5ZUF0", "playlist_index" => 15, "timestamp" => 1761228001, "title" => "I Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates", "upload_date" => "20251023"} 02:52:32.358 [debug] QUERY OK source="sources" db=0.3ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:32.359 [debug] QUERY OK source="sources" db=0.2ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:32.359 [debug] QUERY OK source="media_items" db=0.2ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 14:00:01Z], 9] 02:52:32.363 [debug] QUERY OK source="media_items" db=2.8ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Many thanks to our sponsor for today’s episode, Cometeer. If you’re interested in trying curated coffees from top roasters like Onyx, Proud Mary, and Intelligentsia, you can save $20 on your Discovery Box order by using the link http://cometeer.com/clairesaffitz . It’s the perfect way to start your morning or to give as a thoughtful gift this holiday season.\n\nI Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates \nIn this episode of Claire Recreates, Claire takes on the new-ish Hostess Iced Pumpkin Cupcake and makes it completely from scratch at home. Every fall, this limited-edition treat shows up in grocery stores and reminds us that pumpkin season has officially started. Claire dives into what makes it so nostalgic - the spiced pumpkin cake, the creamy filling, and that signature orange icing swirl -then recreates each element in her own kitchen.\n\nYou’ll see how she builds the cupcake step by step, from baking the soft pumpkin base to mixing the fluffy cream center and topping it with a smooth icing. She also shares a few tricks for getting the flavor and texture as close as possible to the original. Whether you’ve been waiting all year for pumpkin desserts or just love seeing classic snacks get a homemade twist, this one will make you want to preheat your oven.\n\nWatch until the end to see if Claire can match the look and taste of the real Hostess version, and find out how her homemade cupcakes compare. \n\nSubscribe for more recreations of nostalgic snacks and fall baking recipes, and let us know what Claire should tackle next.\n\n#ClaireRecreates #FallBaking #PumpkinDessert\n\nChapters\n00:00 Intro\n00:27 First impressions\n01:23 Smell test\n01:43 Taste test\n02:16 Measurements\n03:09 Reading the ingredients\n05:07 How To Make Iced Pumpkin Cupcakes\n06:43 How To Bake Cupcakes\n15:01 Coffee break\n16:40 Troubleshooting cupcakes\n19:44 How To Make Icing For Cupcakes\n27:40 Icing + decorating\n29:39 Comparison\n32:41 Cat cam\n\n\nIngredients\n\nCake\n1 cup mashed cooked sugar pumpkin (8.2 oz / 232g)\n⅓ cup milk\n1 teaspoon vanilla extract\n1½ cups all-purpose flour (7 oz / 200g)\n1½ teaspoons baking powder (0.21 oz / 6g)\n½ teaspoon ground cinnamon\n½ teaspoon Chinese five spice powder\n½ teaspoon ground turmeric\n¾ teaspoon Diamond Crystal kosher salt\n2 large eggs (3.5 oz / 100g), at room temperature\n¾ cup sugar (6.2 oz / 175g)\n¼ cup brown sugar\n½ cup neutral oil (3.9 oz / 110g)\n\nMarshmallow Filling\n38g water\n75g granulated sugar\n117g light corn syrup\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla paste\n\nIcing\nConfectioners’ sugar\nSour cream\nCorn syrup\nSalt\nVanilla\n\nSquiggles\nConfectioners’ sugar\nTurmeric\nBeet powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates", "72dfb3ce-d4ab-449b-b279-f6c354d8d9c1", "-veNfe5ZUF0", false, 1979, false, "https://www.youtube.com/watch?v=-veNfe5ZUF0", 15, "/downloads/shows/Claire Recreates/Season 2025/s2025e102300 - I Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-10-23 14:00:01Z], ~U[2026-10-17 00:52:32Z], ~U[2026-10-17 00:52:32Z], "Many thanks to our sponsor for today’s episode, Cometeer. If you’re interested in trying curated coffees from top roasters like Onyx, Proud Mary, and Intelligentsia, you can save $20 on your Discovery Box order by using the link http://cometeer.com/clairesaffitz . It’s the perfect way to start your morning or to give as a thoughtful gift this holiday season.\n\nI Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates \nIn this episode of Claire Recreates, Claire takes on the new-ish Hostess Iced Pumpkin Cupcake and makes it completely from scratch at home. Every fall, this limited-edition treat shows up in grocery stores and reminds us that pumpkin season has officially started. Claire dives into what makes it so nostalgic - the spiced pumpkin cake, the creamy filling, and that signature orange icing swirl -then recreates each element in her own kitchen.\n\nYou’ll see how she builds the cupcake step by step, from baking the soft pumpkin base to mixing the fluffy cream center and topping it with a smooth icing. She also shares a few tricks for getting the flavor and texture as close as possible to the original. Whether you’ve been waiting all year for pumpkin desserts or just love seeing classic snacks get a homemade twist, this one will make you want to preheat your oven.\n\nWatch until the end to see if Claire can match the look and taste of the real Hostess version, and find out how her homemade cupcakes compare. \n\nSubscribe for more recreations of nostalgic snacks and fall baking recipes, and let us know what Claire should tackle next.\n\n#ClaireRecreates #FallBaking #PumpkinDessert\n\nChapters\n00:00 Intro\n00:27 First impressions\n01:23 Smell test\n01:43 Taste test\n02:16 Measurements\n03:09 Reading the ingredients\n05:07 How To Make Iced Pumpkin Cupcakes\n06:43 How To Bake Cupcakes\n15:01 Coffee break\n16:40 Troubleshooting cupcakes\n19:44 How To Make Icing For Cupcakes\n27:40 Icing + decorating\n29:39 Comparison\n32:41 Cat cam\n\n\nIngredients\n\nCake\n1 cup mashed cooked sugar pumpkin (8.2 oz / 232g)\n⅓ cup milk\n1 teaspoon vanilla extract\n1½ cups all-purpose flour (7 oz / 200g)\n1½ teaspoons baking powder (0.21 oz / 6g)\n½ teaspoon ground cinnamon\n½ teaspoon Chinese five spice powder\n½ teaspoon ground turmeric\n¾ teaspoon Diamond Crystal kosher salt\n2 large eggs (3.5 oz / 100g), at room temperature\n¾ cup sugar (6.2 oz / 175g)\n¼ cup brown sugar\n½ cup neutral oil (3.9 oz / 110g)\n\nMarshmallow Filling\n38g water\n75g granulated sugar\n117g light corn syrup\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla paste\n\nIcing\nConfectioners’ sugar\nSour cream\nCorn syrup\nSalt\nVanilla\n\nSquiggles\nConfectioners’ sugar\nTurmeric\nBeet powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates", "-veNfe5ZUF0", 1979, false, "https://www.youtube.com/watch?v=-veNfe5ZUF0", "/down (truncated) 02:52:32.363 [debug] QUERY OK source="sources" db=0.2ms idle=135.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:32.364 [debug] QUERY OK source="media_profiles" db=0.3ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:32.364 [debug] QUERY OK source="media_items" db=0.2ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [86669] 02:52:32.365 [debug] Current batch of media processed. Will check again in 1000ms 02:52:33.365 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this episode of Dessert Person, Claire Saffitz makes Pommes Anna, a classic French potato dish that’s as elegant as it is comforting. Using freshly dug potatoes from her garden, Claire layers thinly sliced potatoes with rosemary-infused butter, garlic, salt, and pepper, then bakes them until crisp and golden on the outside and tender inside.\n\nThis recipe is simple, refined, and ideal for the holidays - perfect alongside roast chicken, turkey, or any festive centerpiece. Claire shares her tips for even slicing, layering for the best texture, and how to unmold Pommes Anna beautifully for your table.\n\nIf you’re looking for a holiday side that feels both classic and special, this is it.\n\n#thanksgiving #potatorecipe #clairesaffitz #holiday \n\nChapters\n00:00 Intro\n01:31 Ingredients & Special Equipment\n02:25 Infuse the Butter & Prepare the Potatoes\n10:24 Cook & Bake\n11:26 Remove & Let Cool\n12:26 Serve\n14:26 Cat cam\n\nIngredients\n1 stick unsalted butter\n2 sprigs fresh rosemary\n2 garlic cloves, smashed and peeled\n3 lbs medium potatoes, peeled and held in room temperature tap water\nKosher salt\nFreshly ground black pepper\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 883, "filename" => "/downloads/shows/Claire Recreates/Season 2025/s2025e103000 - The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz.mkv", "id" => "ch3TBJkVkTY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ch3TBJkVkTY", "playlist_index" => 16, "timestamp" => 1761832870, "title" => "The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz", "upload_date" => "20251030"} 02:52:33.366 [debug] QUERY OK source="sources" db=0.4ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:33.367 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:33.367 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 14:01:10Z], 9] 02:52:33.369 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode of Dessert Person, Claire Saffitz makes Pommes Anna, a classic French potato dish that’s as elegant as it is comforting. Using freshly dug potatoes from her garden, Claire layers thinly sliced potatoes with rosemary-infused butter, garlic, salt, and pepper, then bakes them until crisp and golden on the outside and tender inside.\n\nThis recipe is simple, refined, and ideal for the holidays - perfect alongside roast chicken, turkey, or any festive centerpiece. Claire shares her tips for even slicing, layering for the best texture, and how to unmold Pommes Anna beautifully for your table.\n\nIf you’re looking for a holiday side that feels both classic and special, this is it.\n\n#thanksgiving #potatorecipe #clairesaffitz #holiday \n\nChapters\n00:00 Intro\n01:31 Ingredients & Special Equipment\n02:25 Infuse the Butter & Prepare the Potatoes\n10:24 Cook & Bake\n11:26 Remove & Let Cool\n12:26 Serve\n14:26 Cat cam\n\nIngredients\n1 stick unsalted butter\n2 sprigs fresh rosemary\n2 garlic cloves, smashed and peeled\n3 lbs medium potatoes, peeled and held in room temperature tap water\nKosher salt\nFreshly ground black pepper\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz", "d14d3aa6-5200-4192-97f8-9a60ede9e8da", "ch3TBJkVkTY", false, 883, false, "https://www.youtube.com/watch?v=ch3TBJkVkTY", 16, "/downloads/shows/Claire Recreates/Season 2025/s2025e103000 - The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz.mkv", false, false, 9, [], 1, ~U[2025-10-30 14:01:10Z], ~U[2026-10-17 00:52:33Z], ~U[2026-10-17 00:52:33Z], "In this episode of Dessert Person, Claire Saffitz makes Pommes Anna, a classic French potato dish that’s as elegant as it is comforting. Using freshly dug potatoes from her garden, Claire layers thinly sliced potatoes with rosemary-infused butter, garlic, salt, and pepper, then bakes them until crisp and golden on the outside and tender inside.\n\nThis recipe is simple, refined, and ideal for the holidays - perfect alongside roast chicken, turkey, or any festive centerpiece. Claire shares her tips for even slicing, layering for the best texture, and how to unmold Pommes Anna beautifully for your table.\n\nIf you’re looking for a holiday side that feels both classic and special, this is it.\n\n#thanksgiving #potatorecipe #clairesaffitz #holiday \n\nChapters\n00:00 Intro\n01:31 Ingredients & Special Equipment\n02:25 Infuse the Butter & Prepare the Potatoes\n10:24 Cook & Bake\n11:26 Remove & Let Cool\n12:26 Serve\n14:26 Cat cam\n\nIngredients\n1 stick unsalted butter\n2 sprigs fresh rosemary\n2 garlic cloves, smashed and peeled\n3 lbs medium potatoes, peeled and held in room temperature tap water\nKosher salt\nFreshly ground black pepper\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz", "ch3TBJkVkTY", 883, false, "https://www.youtube.com/watch?v=ch3TBJkVkTY", "/downloads/shows/Claire Recreates/Season 2025/s2025e103000 - The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz.mkv", false, 9, ~U[2025-10-30 14:01:10Z]] 02:52:33.369 [debug] QUERY OK source="sources" db=0.2ms idle=140.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:33.370 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:33.370 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [89428] 02:52:33.371 [debug] Current batch of media processed. Will check again in 1000ms 02:52:34.371 [debug] Current batch of media processed. Will check again in 1000ms 02:52:35.372 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates\nIn this episode of Claire Recreates, Claire tackles a true lunchbox classic: the Little Debbie Honey Bun. Soft, sticky, sweet, and glazed, Honey Buns are one of the most iconic packaged pastries around and recreating them at home is a labor of love. Claire dives into what makes the original so nostalgic, from the enriched dough and spiraled shape to the signature sticky-sweet glaze.\n\nYou’ll watch as she mixes and proofs the dough, rolls and cuts each bun, then fries them to get that signature tender, slightly chewy texture. Once they’re golden, she finishes them with a warm honey glaze that melts into all the nooks and crannies, giving them that unmistakable glossy sheen.\n\nAlong the way, Claire shares tips for developing flavor in the dough, keeping the buns soft after frying, and getting the glaze just right. Whether you grew up eating Honey Buns on the go or just love seeing nostalgic snacks recreated from scratch, this episode is pure sticky-sweet comfort.\n\nStick around until the end to see how Claire’s homemade Honey Buns compare to the Little Debbie original, and whether she can truly match the iconic taste and look.\n\nSubscribe for more recreations of nostalgic snacks and comfort-food favorites, and let us know what Claire should take on next.\n\n#ClaireRecreates #HoneyBuns #LittleDebbie\n\nChapters\n00:00 Intro\n00:15 First impressions\n00:54 Smell test\n02:12 Taste test\n02:49 Reading the ingredients\n04:44 Measurements\n06:16 Game plan\n06:40 Dough Rise\n13:29 Form buns (swirl) Proof\n21:21 Frying Glazing\n27:24 Comparison\n30:17 Cat cam\n\nDOUGH\n¾ cup whole milk\n38g plus 368g all-purpose flour\n3 large eggs, chilled\n1½ tablespoons vegetable oil\n1½ tablespoons granulated sugar\n1½ tablespoons honey\n8 grams kosher salt\n1½ teaspoons instant yeast\n85g unsalted butter, cut into ½-inch pieces, chilled\nNeutral oil, for frying\n\nSWIRL\nWater + Cinnamon\n\nGLAZE\n½ cup whole milk\n2 tablespoons unsalted butter\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1835, "filename" => "/downloads/shows/Claire Recreates/Season 2025/s2025e120400 - I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates.mkv", "id" => "CViDoQkqf24", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CViDoQkqf24", "playlist_index" => 17, "timestamp" => 1764860432, "title" => "I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates", "upload_date" => "20251204"} 02:52:35.373 [debug] QUERY OK source="sources" db=0.2ms idle=607.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:35.373 [debug] QUERY OK source="sources" db=0.1ms idle=608.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:35.374 [debug] QUERY OK source="media_items" db=0.3ms idle=608.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 15:00:32Z], 9] 02:52:35.377 [debug] QUERY OK source="media_items" db=2.1ms idle=609.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates\nIn this episode of Claire Recreates, Claire tackles a true lunchbox classic: the Little Debbie Honey Bun. Soft, sticky, sweet, and glazed, Honey Buns are one of the most iconic packaged pastries around and recreating them at home is a labor of love. Claire dives into what makes the original so nostalgic, from the enriched dough and spiraled shape to the signature sticky-sweet glaze.\n\nYou’ll watch as she mixes and proofs the dough, rolls and cuts each bun, then fries them to get that signature tender, slightly chewy texture. Once they’re golden, she finishes them with a warm honey glaze that melts into all the nooks and crannies, giving them that unmistakable glossy sheen.\n\nAlong the way, Claire shares tips for developing flavor in the dough, keeping the buns soft after frying, and getting the glaze just right. Whether you grew up eating Honey Buns on the go or just love seeing nostalgic snacks recreated from scratch, this episode is pure sticky-sweet comfort.\n\nStick around until the end to see how Claire’s homemade Honey Buns compare to the Little Debbie original, and whether she can truly match the iconic taste and look.\n\nSubscribe for more recreations of nostalgic snacks and comfort-food favorites, and let us know what Claire should take on next.\n\n#ClaireRecreates #HoneyBuns #LittleDebbie\n\nChapters\n00:00 Intro\n00:15 First impressions\n00:54 Smell test\n02:12 Taste test\n02:49 Reading the ingredients\n04:44 Measurements\n06:16 Game plan\n06:40 Dough Rise\n13:29 Form buns (swirl) Proof\n21:21 Frying Glazing\n27:24 Comparison\n30:17 Cat cam\n\nDOUGH\n¾ cup whole milk\n38g plus 368g all-purpose flour\n3 large eggs, chilled\n1½ tablespoons vegetable oil\n1½ tablespoons granulated sugar\n1½ tablespoons honey\n8 grams kosher salt\n1½ teaspoons instant yeast\n85g unsalted butter, cut into ½-inch pieces, chilled\nNeutral oil, for frying\n\nSWIRL\nWater + Cinnamon\n\nGLAZE\n½ cup whole milk\n2 tablespoons unsalted butter\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates", "31fed9bc-5c24-4f3e-aa9a-2b165ad61b56", "CViDoQkqf24", false, 1835, false, "https://www.youtube.com/watch?v=CViDoQkqf24", 17, "/downloads/shows/Claire Recreates/Season 2025/s2025e120400 - I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-12-04 15:00:32Z], ~U[2026-10-17 00:52:35Z], ~U[2026-10-17 00:52:35Z], "I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates\nIn this episode of Claire Recreates, Claire tackles a true lunchbox classic: the Little Debbie Honey Bun. Soft, sticky, sweet, and glazed, Honey Buns are one of the most iconic packaged pastries around and recreating them at home is a labor of love. Claire dives into what makes the original so nostalgic, from the enriched dough and spiraled shape to the signature sticky-sweet glaze.\n\nYou’ll watch as she mixes and proofs the dough, rolls and cuts each bun, then fries them to get that signature tender, slightly chewy texture. Once they’re golden, she finishes them with a warm honey glaze that melts into all the nooks and crannies, giving them that unmistakable glossy sheen.\n\nAlong the way, Claire shares tips for developing flavor in the dough, keeping the buns soft after frying, and getting the glaze just right. Whether you grew up eating Honey Buns on the go or just love seeing nostalgic snacks recreated from scratch, this episode is pure sticky-sweet comfort.\n\nStick around until the end to see how Claire’s homemade Honey Buns compare to the Little Debbie original, and whether she can truly match the iconic taste and look.\n\nSubscribe for more recreations of nostalgic snacks and comfort-food favorites, and let us know what Claire should take on next.\n\n#ClaireRecreates #HoneyBuns #LittleDebbie\n\nChapters\n00:00 Intro\n00:15 First impressions\n00:54 Smell test\n02:12 Taste test\n02:49 Reading the ingredients\n04:44 Measurements\n06:16 Game plan\n06:40 Dough Rise\n13:29 Form buns (swirl) Proof\n21:21 Frying Glazing\n27:24 Comparison\n30:17 Cat cam\n\nDOUGH\n¾ cup whole milk\n38g plus 368g all-purpose flour\n3 large eggs, chilled\n1½ tablespoons vegetable oil\n1½ tablespoons granulated sugar\n1½ tablespoons honey\n8 grams kosher salt\n1½ teaspoons instant yeast\n85g unsalted butter, cut into ½-inch pieces, chilled\nNeutral oil, for frying\n\nSWIRL\nWater + Cinnamon\n\nGLAZE\n½ cup whole milk\n2 tablespoons unsalted butter\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates", "CViDoQkqf24", 1835, false, "https://www.youtube.com/watch?v=CViDoQkqf24", "/downloads/shows/Claire Recreates/Season 2025/s2025e120400 - I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates.mkv", false, 9, ~U[2025-12-04 15:00:32Z]] 02:52:35.377 [debug] QUERY OK source="sources" db=0.2ms idle=145.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:35.378 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:35.379 [debug] QUERY OK source="media_items" db=0.5ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [103699] 02:52:35.379 [debug] Current batch of media processed. Will check again in 1000ms 02:52:36.380 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Whoppers | Claire Recreates\nIn this episode of Claire Recreates, Claire takes on a movie-theater and candy-aisle classic: Whoppers. Crunchy, airy, deeply malty, and coated in milk chocolate, Whoppers seem simple, but recreating that unmistakable texture from scratch turns out to be a real technical puzzle.\n\nClaire starts by breaking down the heart of the candy: the light, crisp malted center. She builds it from an Italian meringue made with whipped egg whites and a cooked sugar syrup, then folds in a carefully balanced malt mixture made from malted milk powder, barley malt flour, milk, salt, and leavening. The mixture is cooked, aerated, portioned into tiny spheres, and baked until dry, hollow, and shatter-crisp inside.\n\nOnce the centers are just right, Claire moves on to the chocolate. She coats each malted ball in smooth milk chocolate, dialing in the thickness and snap so it eats like the real thing, no waxy shortcuts, no shortcuts at all.\n\nAlong the way, Claire dives into what gives Whoppers their signature flavor, why malt is so nostalgic, and how industrial candy achieves that ultra-light crunch. She shares tips on sugar stages, drying vs. baking, and how small changes can completely alter the final texture.\n\n#clairesaffitz #whoppers #chocolate \n\nChapters\n00:00 Intro\n01:31 First impressions\n01:57 Reading the ingredients\n02:52 Taste test\n03:44 Measurements\n04:36 Game plan\n04:45 How To Make Whoppers\n17:34 Coat in tempered milk chocolate\n21:23 Comparison\n24:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1458, "filename" => "/downloads/shows/Claire Recreates/Season 2026/s2026e020400 - I Tried Making Homemade Whoppers | Claire Recreates.mkv", "id" => "Zs8bGlrcYAo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Zs8bGlrcYAo", "playlist_index" => 18, "timestamp" => 1770217267, "title" => "I Tried Making Homemade Whoppers | Claire Recreates", "upload_date" => "20260204"} 02:52:36.381 [debug] QUERY OK source="sources" db=0.3ms idle=1004.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:36.382 [debug] QUERY OK source="sources" db=0.1ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:36.382 [debug] QUERY OK source="media_items" db=0.2ms idle=1003.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-04 15:01:07Z], 9] 02:52:36.384 [debug] QUERY OK source="media_items" db=1.5ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Whoppers | Claire Recreates\nIn this episode of Claire Recreates, Claire takes on a movie-theater and candy-aisle classic: Whoppers. Crunchy, airy, deeply malty, and coated in milk chocolate, Whoppers seem simple, but recreating that unmistakable texture from scratch turns out to be a real technical puzzle.\n\nClaire starts by breaking down the heart of the candy: the light, crisp malted center. She builds it from an Italian meringue made with whipped egg whites and a cooked sugar syrup, then folds in a carefully balanced malt mixture made from malted milk powder, barley malt flour, milk, salt, and leavening. The mixture is cooked, aerated, portioned into tiny spheres, and baked until dry, hollow, and shatter-crisp inside.\n\nOnce the centers are just right, Claire moves on to the chocolate. She coats each malted ball in smooth milk chocolate, dialing in the thickness and snap so it eats like the real thing, no waxy shortcuts, no shortcuts at all.\n\nAlong the way, Claire dives into what gives Whoppers their signature flavor, why malt is so nostalgic, and how industrial candy achieves that ultra-light crunch. She shares tips on sugar stages, drying vs. baking, and how small changes can completely alter the final texture.\n\n#clairesaffitz #whoppers #chocolate \n\nChapters\n00:00 Intro\n01:31 First impressions\n01:57 Reading the ingredients\n02:52 Taste test\n03:44 Measurements\n04:36 Game plan\n04:45 How To Make Whoppers\n17:34 Coat in tempered milk chocolate\n21:23 Comparison\n24:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Whoppers | Claire Recreates", "c2eac852-5955-4358-a1b6-0bfdc2bf8bea", "Zs8bGlrcYAo", false, 1458, false, "https://www.youtube.com/watch?v=Zs8bGlrcYAo", 18, "/downloads/shows/Claire Recreates/Season 2026/s2026e020400 - I Tried Making Homemade Whoppers | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-02-04 15:01:07Z], ~U[2026-10-17 00:52:36Z], ~U[2026-10-17 00:52:36Z], "I Tried Making Homemade Whoppers | Claire Recreates\nIn this episode of Claire Recreates, Claire takes on a movie-theater and candy-aisle classic: Whoppers. Crunchy, airy, deeply malty, and coated in milk chocolate, Whoppers seem simple, but recreating that unmistakable texture from scratch turns out to be a real technical puzzle.\n\nClaire starts by breaking down the heart of the candy: the light, crisp malted center. She builds it from an Italian meringue made with whipped egg whites and a cooked sugar syrup, then folds in a carefully balanced malt mixture made from malted milk powder, barley malt flour, milk, salt, and leavening. The mixture is cooked, aerated, portioned into tiny spheres, and baked until dry, hollow, and shatter-crisp inside.\n\nOnce the centers are just right, Claire moves on to the chocolate. She coats each malted ball in smooth milk chocolate, dialing in the thickness and snap so it eats like the real thing, no waxy shortcuts, no shortcuts at all.\n\nAlong the way, Claire dives into what gives Whoppers their signature flavor, why malt is so nostalgic, and how industrial candy achieves that ultra-light crunch. She shares tips on sugar stages, drying vs. baking, and how small changes can completely alter the final texture.\n\n#clairesaffitz #whoppers #chocolate \n\nChapters\n00:00 Intro\n01:31 First impressions\n01:57 Reading the ingredients\n02:52 Taste test\n03:44 Measurements\n04:36 Game plan\n04:45 How To Make Whoppers\n17:34 Coat in tempered milk chocolate\n21:23 Comparison\n24:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Whoppers | Claire Recreates", "Zs8bGlrcYAo", 1458, false, "https://www.youtube.com/watch?v=Zs8bGlrcYAo", "/downloads/shows/Claire Recreates/Season 2026/s2026e020400 - I Tried Making Homemade Whoppers | Claire Recreates.mkv", false, 9, ~U[2026-02-04 15:01:07Z]] 02:52:36.385 [debug] QUERY OK source="sources" db=0.1ms idle=150.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:36.385 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:36.386 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [130341] 02:52:36.386 [debug] Current batch of media processed. Will check again in 1000ms 02:52:37.386 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, Claire Saffitz explores the iconic beverage, Coca-Cola. She delves into the ingredients and process behind making this classic soda. Watch as she attempts to recreate the distinctive taste of coke, offering insights into its composition and how to make a version at home. This episode is a deep dive into the world of cola and food science.\n\n#clairesaffitz #cocacola #homemade \n\n00:00 Intro\n02:11 Reading the Coca Cola Ingredients\n02:21 Observations\n08:02 Game plan\n08:21 How To Make Caramel\n12:12 Tinker\n29:25 How To Make Seltzer\n30:08 Comparison\n33:48 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 2046, "filename" => "/downloads/shows/Claire Recreates/Season 2026/s2026e031600 - I Tried Making Homemade Coca Cola | Claire Recreates.mkv", "id" => "9f3ZO4N0RC8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9f3ZO4N0RC8", "playlist_index" => 19, "timestamp" => 1773669613, "title" => "I Tried Making Homemade Coca Cola | Claire Recreates", "upload_date" => "20260316"} 02:52:37.387 [debug] QUERY OK source="sources" db=0.2ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:37.387 [debug] QUERY OK source="sources" db=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:37.388 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-16 14:00:13Z], 9] 02:52:37.391 [debug] QUERY OK source="media_items" db=2.0ms idle=1002.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, Claire Saffitz explores the iconic beverage, Coca-Cola. She delves into the ingredients and process behind making this classic soda. Watch as she attempts to recreate the distinctive taste of coke, offering insights into its composition and how to make a version at home. This episode is a deep dive into the world of cola and food science.\n\n#clairesaffitz #cocacola #homemade \n\n00:00 Intro\n02:11 Reading the Coca Cola Ingredients\n02:21 Observations\n08:02 Game plan\n08:21 How To Make Caramel\n12:12 Tinker\n29:25 How To Make Seltzer\n30:08 Comparison\n33:48 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Coca Cola | Claire Recreates", "990821f9-84b3-4254-88db-67b8029af2ec", "9f3ZO4N0RC8", false, 2046, false, "https://www.youtube.com/watch?v=9f3ZO4N0RC8", 19, "/downloads/shows/Claire Recreates/Season 2026/s2026e031600 - I Tried Making Homemade Coca Cola | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-03-16 14:00:13Z], ~U[2026-10-17 00:52:37Z], ~U[2026-10-17 00:52:37Z], "In this video, Claire Saffitz explores the iconic beverage, Coca-Cola. She delves into the ingredients and process behind making this classic soda. Watch as she attempts to recreate the distinctive taste of coke, offering insights into its composition and how to make a version at home. This episode is a deep dive into the world of cola and food science.\n\n#clairesaffitz #cocacola #homemade \n\n00:00 Intro\n02:11 Reading the Coca Cola Ingredients\n02:21 Observations\n08:02 Game plan\n08:21 How To Make Caramel\n12:12 Tinker\n29:25 How To Make Seltzer\n30:08 Comparison\n33:48 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Coca Cola | Claire Recreates", "9f3ZO4N0RC8", 2046, false, "https://www.youtube.com/watch?v=9f3ZO4N0RC8", "/downloads/shows/Claire Recreates/Season 2026/s2026e031600 - I Tried Making Homemade Coca Cola | Claire Recreates.mkv", false, 9, ~U[2026-03-16 14:00:13Z]] 02:52:37.391 [debug] QUERY OK source="sources" db=0.2ms idle=154.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:37.392 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:37.392 [debug] QUERY OK source="media_items" db=0.2ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [148752] 02:52:37.392 [debug] Current batch of media processed. Will check again in 1000ms 02:52:38.393 [debug] Current batch of media processed. Will check again in 1000ms 02:52:39.395 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Nutty Buddy Bars | Claire Recreates\nNutty Buddy Bars are one of those nostalgic snacks that somehow manage to be crispy, creamy, chocolatey, and peanut buttery all at once. First introduced in the 1960s, the iconic wafer bars became a lunchbox staple thanks to their delicate layers of crunchy wafers, peanut butter filling, and chocolate coating.\n\nIn this episode of Claire Recreates, Claire Saffitz takes on the fan-favorite classic completely from scratch. She breaks down every layer that makes Nutty Buddies so addictive: ultra-thin crisp wafers, a deeply roasted peanut butter filling, and a snappy chocolate coating that brings everything together. Along the way, she explores what makes the original so satisfying while showing how homemade ingredients can elevate the flavor and texture into something even better.\n\nWhether you grew up unwrapping these after school or you’re discovering them for the first time, Claire’s homemade version captures all the nostalgia of the original with richer chocolate, more intense peanut flavor, and that signature crunch in every bite.\n\n#chocolate #snacks #clairesaffitz \n\nChapters:\n\n00:00 Intro\n00:19 Nutty Buddy\n01:12 Taste test\n01:52 Reading the ingredients\n03:23 Measurements\n04:10 Make and cook wafers\n07:04 Peanut butter filling\n17:28 Assembly (shaping)\n18:39 Chocolate coating\n21:21 Comparison\n24:26 Cat cam\n\nIngredients:\n\nPeanut Filling\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nWafers\n1 cup cake flour\n½ cup cornstarch\n⅓ cup powdered sugar\n1½ tsp. baking powder\n½ tsp. salt \n½ cup unsalted butter, melted and cooled\n¾ cup water\n2 teaspoons vanilla extract\n\nChocolate\n12 oz. milk chocolate \n 3 oz. Finely chopped milk chocolate\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1483, "filename" => "/downloads/shows/Claire Recreates/Season 2026/s2026e052100 - I Tried Making Homemade Nutty Buddy Bars | Claire Recreates.mkv", "id" => "LYWuBHBdDbk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LYWuBHBdDbk", "playlist_index" => 20, "timestamp" => 1779372009, "title" => "I Tried Making Homemade Nutty Buddy Bars | Claire Recreates", "upload_date" => "20260521"} 02:52:39.396 [debug] QUERY OK source="sources" db=0.7ms idle=629.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:39.396 [debug] QUERY OK source="sources" db=0.2ms idle=630.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:39.397 [debug] QUERY OK source="media_items" db=0.4ms idle=631.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-21 14:00:09Z], 9] 02:52:39.400 [debug] QUERY OK source="media_items" db=2.1ms idle=632.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Nutty Buddy Bars | Claire Recreates\nNutty Buddy Bars are one of those nostalgic snacks that somehow manage to be crispy, creamy, chocolatey, and peanut buttery all at once. First introduced in the 1960s, the iconic wafer bars became a lunchbox staple thanks to their delicate layers of crunchy wafers, peanut butter filling, and chocolate coating.\n\nIn this episode of Claire Recreates, Claire Saffitz takes on the fan-favorite classic completely from scratch. She breaks down every layer that makes Nutty Buddies so addictive: ultra-thin crisp wafers, a deeply roasted peanut butter filling, and a snappy chocolate coating that brings everything together. Along the way, she explores what makes the original so satisfying while showing how homemade ingredients can elevate the flavor and texture into something even better.\n\nWhether you grew up unwrapping these after school or you’re discovering them for the first time, Claire’s homemade version captures all the nostalgia of the original with richer chocolate, more intense peanut flavor, and that signature crunch in every bite.\n\n#chocolate #snacks #clairesaffitz \n\nChapters:\n\n00:00 Intro\n00:19 Nutty Buddy\n01:12 Taste test\n01:52 Reading the ingredients\n03:23 Measurements\n04:10 Make and cook wafers\n07:04 Peanut butter filling\n17:28 Assembly (shaping)\n18:39 Chocolate coating\n21:21 Comparison\n24:26 Cat cam\n\nIngredients:\n\nPeanut Filling\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nWafers\n1 cup cake flour\n½ cup cornstarch\n⅓ cup powdered sugar\n1½ tsp. baking powder\n½ tsp. salt \n½ cup unsalted butter, melted and cooled\n¾ cup water\n2 teaspoons vanilla extract\n\nChocolate\n12 oz. milk chocolate \n 3 oz. Finely chopped milk chocolate\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Nutty Buddy Bars | Claire Recreates", "08aecd95-fddc-49fb-9425-d23d2e19aa51", "LYWuBHBdDbk", false, 1483, false, "https://www.youtube.com/watch?v=LYWuBHBdDbk", 20, "/downloads/shows/Claire Recreates/Season 2026/s2026e052100 - I Tried Making Homemade Nutty Buddy Bars | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-05-21 14:00:09Z], ~U[2026-10-17 00:52:39Z], ~U[2026-10-17 00:52:39Z], "I Tried Making Homemade Nutty Buddy Bars | Claire Recreates\nNutty Buddy Bars are one of those nostalgic snacks that somehow manage to be crispy, creamy, chocolatey, and peanut buttery all at once. First introduced in the 1960s, the iconic wafer bars became a lunchbox staple thanks to their delicate layers of crunchy wafers, peanut butter filling, and chocolate coating.\n\nIn this episode of Claire Recreates, Claire Saffitz takes on the fan-favorite classic completely from scratch. She breaks down every layer that makes Nutty Buddies so addictive: ultra-thin crisp wafers, a deeply roasted peanut butter filling, and a snappy chocolate coating that brings everything together. Along the way, she explores what makes the original so satisfying while showing how homemade ingredients can elevate the flavor and texture into something even better.\n\nWhether you grew up unwrapping these after school or you’re discovering them for the first time, Claire’s homemade version captures all the nostalgia of the original with richer chocolate, more intense peanut flavor, and that signature crunch in every bite.\n\n#chocolate #snacks #clairesaffitz \n\nChapters:\n\n00:00 Intro\n00:19 Nutty Buddy\n01:12 Taste test\n01:52 Reading the ingredients\n03:23 Measurements\n04:10 Make and cook wafers\n07:04 Peanut butter filling\n17:28 Assembly (shaping)\n18:39 Chocolate coating\n21:21 Comparison\n24:26 Cat cam\n\nIngredients:\n\nPeanut Filling\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nWafers\n1 cup cake flour\n½ cup cornstarch\n⅓ cup powdered sugar\n1½ tsp. baking powder\n½ tsp. salt \n½ cup unsalted butter, melted and cooled\n¾ cup water\n2 teaspoons vanilla extract\n\nChocolate\n12 oz. milk chocolate \n 3 oz. Finely chopped milk chocolate\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Nutty Buddy Bars | Claire Recreates", "LYWuBHBdDbk", 1483, false, "https://www.youtube.com/watch?v=LYWuBHBdDbk", "/downloads/shows/Claire Recreates/Season 2026/s2026e052100 - I Tried Making Homemade Nutty Buddy Bars | Claire Recreates.mkv", false, 9, ~U[2026-05-21 14:00:09Z]] 02:52:39.401 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=159.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:39.401 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:39.402 [debug] QUERY OK source="media_items" db=0.2ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [181056] 02:52:39.402 [debug] Current batch of media processed. Will check again in 1000ms 02:52:40.402 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Star Crunch Cookies | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on the legendary Star Crunch cookie... a chewy, caramel-filled, chocolate-coated classic packed with crispy rice. From homemade caramel to perfectly balanced chocolate flavor and texture, Claire breaks down every component to see if a from-scratch version can capture the nostalgia of the original.\n\nWill the homemade version outshine the convenience store favorite? Watch and find out.\n\n#ClaireSaffitz #ClaireRecreates #StarCrunch #DessertPerson\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n(¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1 ¼ cup all-purpose flour\n1 tablespoon cocoa powder\n1½ teaspoons baking soda\n1 teaspoon kosher salt\n½ turmeric\n8 tablespoons unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nCARAMEL LAYER\n1 cups/400 grams granulated sugar\n¼ cup/85 grams light corn syrup\n2 tablespoons/57 grams unsalted butter, cut into ½-inch pieces\n3/4 cups/360 grams heavy cream, heated and kept warm\n1 teaspoon kosher salt (such as Diamond Crystal)\n\n00:00 Intro\n00:25 First impressions of StarCrunch\n03:55 StarCrunch Analysis\n05:00 Measurements\n05:26 Game plan\n05:37 How To Make Puffed Rice\n08:51 How To Make Cookies\n29:34 Fry rice\n31:54 How To Make Caramel\n34:51 Coat cookies in caramel + puffed rice\n36:56 How To Make Chocolate\n41:06 Comparison\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 2660, "filename" => "/downloads/shows/Claire Recreates/Season 2026/s2026e061900 - I Tried Making Homemade Star Crunch Cookies | Claire Recreates.mkv", "id" => "bfGL-DG29-E", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bfGL-DG29-E", "playlist_index" => 21, "timestamp" => 1781870426, "title" => "I Tried Making Homemade Star Crunch Cookies | Claire Recreates", "upload_date" => "20260619"} 02:52:40.403 [debug] QUERY OK source="sources" db=0.3ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:40.404 [debug] QUERY OK source="sources" db=0.2ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:40.404 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-19 12:00:26Z], 9] 02:52:40.407 [debug] QUERY OK source="media_items" db=1.9ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Star Crunch Cookies | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on the legendary Star Crunch cookie... a chewy, caramel-filled, chocolate-coated classic packed with crispy rice. From homemade caramel to perfectly balanced chocolate flavor and texture, Claire breaks down every component to see if a from-scratch version can capture the nostalgia of the original.\n\nWill the homemade version outshine the convenience store favorite? Watch and find out.\n\n#ClaireSaffitz #ClaireRecreates #StarCrunch #DessertPerson\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n(¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1 ¼ cup all-purpose flour\n1 tablespoon cocoa powder\n1½ teaspoons baking soda\n1 teaspoon kosher salt\n½ turmeric\n8 tablespoons unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nCARAMEL LAYER\n1 cups/400 grams granulated sugar\n¼ cup/85 grams light corn syrup\n2 tablespoons/57 grams unsalted butter, cut into ½-inch pieces\n3/4 cups/360 grams heavy cream, heated and kept warm\n1 teaspoon kosher salt (such as Diamond Crystal)\n\n00:00 Intro\n00:25 First impressions of StarCrunch\n03:55 StarCrunch Analysis\n05:00 Measurements\n05:26 Game plan\n05:37 How To Make Puffed Rice\n08:51 How To Make Cookies\n29:34 Fry rice\n31:54 How To Make Caramel\n34:51 Coat cookies in caramel + puffed rice\n36:56 How To Make Chocolate\n41:06 Comparison\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Star Crunch Cookies | Claire Recreates", "be2f579c-c191-4962-92e4-f2208527d4de", "bfGL-DG29-E", false, 2660, false, "https://www.youtube.com/watch?v=bfGL-DG29-E", 21, "/downloads/shows/Claire Recreates/Season 2026/s2026e061900 - I Tried Making Homemade Star Crunch Cookies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-06-19 12:00:26Z], ~U[2026-10-17 00:52:40Z], ~U[2026-10-17 00:52:40Z], "I Tried Making Homemade Star Crunch Cookies | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on the legendary Star Crunch cookie... a chewy, caramel-filled, chocolate-coated classic packed with crispy rice. From homemade caramel to perfectly balanced chocolate flavor and texture, Claire breaks down every component to see if a from-scratch version can capture the nostalgia of the original.\n\nWill the homemade version outshine the convenience store favorite? Watch and find out.\n\n#ClaireSaffitz #ClaireRecreates #StarCrunch #DessertPerson\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n(¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1 ¼ cup all-purpose flour\n1 tablespoon cocoa powder\n1½ teaspoons baking soda\n1 teaspoon kosher salt\n½ turmeric\n8 tablespoons unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nCARAMEL LAYER\n1 cups/400 grams granulated sugar\n¼ cup/85 grams light corn syrup\n2 tablespoons/57 grams unsalted butter, cut into ½-inch pieces\n3/4 cups/360 grams heavy cream, heated and kept warm\n1 teaspoon kosher salt (such as Diamond Crystal)\n\n00:00 Intro\n00:25 First impressions of StarCrunch\n03:55 StarCrunch Analysis\n05:00 Measurements\n05:26 Game plan\n05:37 How To Make Puffed Rice\n08:51 How To Make Cookies\n29:34 Fry rice\n31:54 How To Make Caramel\n34:51 Coat cookies in caramel + puffed rice\n36:56 How To Make Chocolate\n41:06 Comparison\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Star Crunch Cookies | Claire Recreates", "bfGL-DG29-E", 2660, false, "https://www.youtube.com/watch?v=bfGL-DG29-E", "/downloads/shows/Claire Recreates/Season 2026/s2026e061900 - I Tried Making Homemade Star Crunch Cookies | Claire Recreates.mkv", false, 9, ~U[2026-06-19 12:00:26Z]] 02:52:40.407 [debug] QUERY OK source="sources" db=0.1ms idle=165.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:40.408 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:40.408 [debug] QUERY OK source="media_items" db=0.4ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [195049] 02:52:40.408 [debug] Current batch of media processed. Will check again in 1000ms 02:52:41.409 [debug] Current batch of media processed. Will check again in 1000ms 02:52:42.410 [debug] Current batch of media processed. Will check again in 1000ms 02:52:43.411 [debug] Current batch of media processed. Will check again in 1000ms 02:52:44.412 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Tried Making Homemade Hostess Fruit Pies | Claire Recreates\nClaire Saffitz takes on a childhood classic: Hostess Fruit Pies. In this episode of Claire Recreates, Claire makes homemade versions of the iconic glazed hand pies from scratch, with two fillings: fresh Pink Lady apple and sour cherry.\n\nThe goal sounds simple enough: flaky pie dough, fruit filling, and that signature crackly glaze. But recreating a packaged fruit pie at home means figuring out everything from the texture of the crust to how much actual fruit the filling can handle before it stops tasting like the original.\n\nFor the apple pie, Claire starts with fresh Pink Lady apples, looking for the right balance of sweetness, acidity, and that familiar gooey fruit-pie texture. Then she turns to sour cherries for a homemade cherry filling that’s bright, tart, and deeply cherry-forward.\n\nClaire Recreates Hostess Fruit Pies from scratch.\n\n#ClaireSaffitz #ClaireRecreates #HostessFruitPies\n\nChapters:\n00:00 Intro\n01:18 How To Make Hostess Fruit Pies\n03:15 Reading the ingredients\n04:30 Measurements\n04:50 How To Make Pastry\n05:23 How To Make Filling\n10:49 Assemble & bake\n16:38 Glaze\n17:48 Comparison\n\nAll Purpose Flaky Pastry Dough\n3 cups all-purpose flour, plus more for rolling\n2 tablespoons sugar\n2 teaspoons Diamond Crystal kosher salt or 1 teaspoon Morton\n2.5 sticks unsalted butter\n1/4 teaspoon baking powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "duration" => 1190, "filename" => "/downloads/shows/Claire Recreates/Season 2026/s2026e090300 - I Tried Making Homemade Hostess Fruit Pies | Claire Recreates.mkv", "id" => "ZpjIqe1si-U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZpjIqe1si-U", "playlist_index" => 22, "timestamp" => 1788444010, "title" => "I Tried Making Homemade Hostess Fruit Pies | Claire Recreates", "upload_date" => "20260903"} 02:52:44.413 [debug] QUERY OK source="sources" db=0.4ms idle=647.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:44.414 [debug] QUERY OK source="sources" db=0.2ms idle=648.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:44.415 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=649.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-03 14:00:10Z], 9] 02:52:44.419 [debug] QUERY OK source="media_items" db=2.8ms idle=650.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Hostess Fruit Pies | Claire Recreates\nClaire Saffitz takes on a childhood classic: Hostess Fruit Pies. In this episode of Claire Recreates, Claire makes homemade versions of the iconic glazed hand pies from scratch, with two fillings: fresh Pink Lady apple and sour cherry.\n\nThe goal sounds simple enough: flaky pie dough, fruit filling, and that signature crackly glaze. But recreating a packaged fruit pie at home means figuring out everything from the texture of the crust to how much actual fruit the filling can handle before it stops tasting like the original.\n\nFor the apple pie, Claire starts with fresh Pink Lady apples, looking for the right balance of sweetness, acidity, and that familiar gooey fruit-pie texture. Then she turns to sour cherries for a homemade cherry filling that’s bright, tart, and deeply cherry-forward.\n\nClaire Recreates Hostess Fruit Pies from scratch.\n\n#ClaireSaffitz #ClaireRecreates #HostessFruitPies\n\nChapters:\n00:00 Intro\n01:18 How To Make Hostess Fruit Pies\n03:15 Reading the ingredients\n04:30 Measurements\n04:50 How To Make Pastry\n05:23 How To Make Filling\n10:49 Assemble & bake\n16:38 Glaze\n17:48 Comparison\n\nAll Purpose Flaky Pastry Dough\n3 cups all-purpose flour, plus more for rolling\n2 tablespoons sugar\n2 teaspoons Diamond Crystal kosher salt or 1 teaspoon Morton\n2.5 sticks unsalted butter\n1/4 teaspoon baking powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Hostess Fruit Pies | Claire Recreates", "8c531cc5-b48f-4fdb-9133-7a53adebc519", "ZpjIqe1si-U", false, 1190, false, "https://www.youtube.com/watch?v=ZpjIqe1si-U", 22, "/downloads/shows/Claire Recreates/Season 2026/s2026e090300 - I Tried Making Homemade Hostess Fruit Pies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-09-03 14:00:10Z], ~U[2026-10-17 00:52:44Z], ~U[2026-10-17 00:52:44Z], "I Tried Making Homemade Hostess Fruit Pies | Claire Recreates\nClaire Saffitz takes on a childhood classic: Hostess Fruit Pies. In this episode of Claire Recreates, Claire makes homemade versions of the iconic glazed hand pies from scratch, with two fillings: fresh Pink Lady apple and sour cherry.\n\nThe goal sounds simple enough: flaky pie dough, fruit filling, and that signature crackly glaze. But recreating a packaged fruit pie at home means figuring out everything from the texture of the crust to how much actual fruit the filling can handle before it stops tasting like the original.\n\nFor the apple pie, Claire starts with fresh Pink Lady apples, looking for the right balance of sweetness, acidity, and that familiar gooey fruit-pie texture. Then she turns to sour cherries for a homemade cherry filling that’s bright, tart, and deeply cherry-forward.\n\nClaire Recreates Hostess Fruit Pies from scratch.\n\n#ClaireSaffitz #ClaireRecreates #HostessFruitPies\n\nChapters:\n00:00 Intro\n01:18 How To Make Hostess Fruit Pies\n03:15 Reading the ingredients\n04:30 Measurements\n04:50 How To Make Pastry\n05:23 How To Make Filling\n10:49 Assemble & bake\n16:38 Glaze\n17:48 Comparison\n\nAll Purpose Flaky Pastry Dough\n3 cups all-purpose flour, plus more for rolling\n2 tablespoons sugar\n2 teaspoons Diamond Crystal kosher salt or 1 teaspoon Morton\n2.5 sticks unsalted butter\n1/4 teaspoon baking powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Hostess Fruit Pies | Claire Recreates", "ZpjIqe1si-U", 1190, false, "https://www.youtube.com/watch?v=ZpjIqe1si-U", "/downloads/shows/Claire Recreates/Season 2026/s2026e090300 - I Tried Making Homemade Hostess Fruit Pies | Claire Recreates.mkv", false, 9, ~U[2026-09-03 14:00:10Z]] 02:52:44.420 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=173.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:44.421 [debug] QUERY OK source="media_profiles" db=0.6ms idle=6.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:52:44.422 [debug] QUERY OK source="media_items" db=0.3ms idle=7.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [233420] 02:52:44.422 [debug] Current batch of media processed. Will check again in 1000ms 02:52:45.423 [debug] Current batch of media processed. Will check again in 1000ms 02:52:46.424 [debug] Current batch of media processed. Will check again in 1000ms 02:52:47.425 [debug] Current batch of media processed. Will check again in 1000ms 02:52:48.327 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://youtube.com/playlist?list=PLUUVA1IsKg-WqgEu55gWCHpi8Wfs_YqcZ&si=z1kjgb4xIhCbOdG_ --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/shows/Claire Recreates/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/10/25/10254fb0749ab49ccfcfb39f93e1c4f9758c20fb3d6c0f7851a39095adf885c7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 02:52:48.329 [debug] Gracefully stopping file follower 02:52:48.329 [debug] QUERY OK source="sources" db=0.2ms idle=563.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [9] 02:52:48.330 [debug] QUERY OK source="sources" db=0.4ms idle=564.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.330 [debug] QUERY OK source="media_items" db=0.2ms idle=564.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-30 13:00:32Z], 9] 02:52:48.333 [debug] QUERY OK source="media_items" db=1.8ms idle=565.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Drumsticks | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Nestle Drumsticks, The Original Ice Cream Cone. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #icecream #drumsticks \n\nCHAPTERS:\n00:00 Intro\n00:54 Snack breakdown\n03:29 Measurements\n04:43 Original ingredients\n05:15 Game plan\n06:15 Make and form cones\n18:13 Bake the cones\n19:53 Make the chocolate coating\n23:03 Make the ice cream\n32:05 Form the bulbs\n33:26 The next morning\n34:04 Make the magic shell\n37:29 Taste test\n41:59 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make the cones, combine 3 ounces room temp egg whites, ¼ cup granulated sugar, ¼ up demerara sugar, 3 tablespoons melted cooled butter, 2 teaspoons vanilla extract, ½ cup flour, 1 tablespoon cornstarch, ½ teaspoon kosher salt, and ¼ teaspoon baking soda and blend with a hand blender until completely smooth. Transfer the batter to a piping bag and pipe some onto the grates of a preheated electric waffle cone iron. Cook just until it’s set but pale, then transfer the piece to a cutting board and trace around a football-shaped stencil with a wheel cutter. Remove the excess, return the piece to the iron, and cook until golden brown all over. Form the cone around a mold, pressing firmly on the seam. Repeat with more batter. Dry the cones in a 200-degree oven upside down on a rack set over a baking sheet,, then let cool. Brush the insides of the cones with a thin layer of melted chocolate, depositing a half teaspoon of chocolate in the bottom of each. Place the cones on a rack in the freezer. \n\nTo make the ice cream, vigorously whisk 8 large egg yolks, 1 cup granulated sugar, 30g malted milk powder, ½ teaspoon kosher salt, and 1 tablespoon vanilla paste in the bottom of a large saucepan until pale and ribbony. Whisk in 3 cups whole milk and 1 cup heavy cream. Cook the mixture, whisking constantly over medium heat, until it registers 180-degrees. Cool the mixture rapidly in an ice bath, then transfer to an ice cream machine and spin until the ice cream holds its shape. Transfer some of the ice cream to a piping bag and fill the chocolate-coated cones, smoothing the tops, then transfer the rest of the ice cream to a chilled loaf pan and freeze solid. Scooping from the loaf pan, place a scoop of ice cream over the top of each cone, smoothing with a small offset spatula to form nice domes. Freeze the cones overnight, then melt chocolate and coconut oil together to make a magic shell. Dip the cones in the shell, shaking off excess, then gently roll in very evenly chopped and sifted roasted salted peanuts. Freeze until form, at least 20 minutes.", "I Tried Making Homemade Drumsticks | Claire Recreates", "ef6eda64-d62b-4579-ab7d-33fbabf07da9", "Qd0TQeVQ2Z0", false, 2534, false, "https://www.youtube.com/watch?v=Qd0TQeVQ2Z0", 1, "/downloads/shows/Claire Recreates/Season 2024/s2024e043000 - I Tried Making Homemade Drumsticks | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-04-30 13:00:32Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Drumsticks | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Nestle Drumsticks, The Original Ice Cream Cone. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #icecream #drumsticks \n\nCHAPTERS:\n00:00 Intro\n00:54 Snack breakdown\n03:29 Measurements\n04:43 Original ingredients\n05:15 Game plan\n06:15 Make and form cones\n18:13 Bake the cones\n19:53 Make the chocolate coating\n23:03 Make the ice cream\n32:05 Form the bulbs\n33:26 The next morning\n34:04 Make the magic shell\n37:29 Taste test\n41:59 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make the cones, combine 3 ounces room temp egg whites, ¼ cup granulated sugar, ¼ up demerara sugar, 3 tablespoons melted cooled butter, 2 teaspoons vanilla extract, ½ cup flour, 1 tablespoon cornstarch, ½ teaspoon kosher salt, and ¼ teaspoon baking soda and blend with a hand blender until completely smooth. Transfer the batter to a piping bag and pipe some onto the grates of a preheated electric waffle cone iron. Cook just until it’s set but pale, then transfer the piece to a cutting board and trace around a football-shaped stencil with a wheel cutter. Remove the excess, return the piece to the iron, and cook until golden brown all over. Form the cone around a mold, pressing firmly on the seam. Repeat with more batter. Dry the cones in a 200-degree oven upside down on a rack set over a baking sheet,, then let cool. Brush the insides of the cones with a thin layer of melted chocolate, depositing a half teaspoon of chocolate in the bottom of each. Place the cones on a rack in the freezer. \n\nTo make the ice cream, vigorously whisk 8 large egg yolks, 1 cup granulated sugar, 30g malted milk powder, ½ teaspoon kosher salt, and 1 tablespoon vanilla paste in the bottom of a large saucepan until pale and ribbony. Whisk in 3 cups whole milk and 1 cup heavy cream. Cook the mixture, whisking constantly over medium heat, until it registers 180-degrees. Cool the mixture rapidly in an ice bath, then transfer to an ice cream machine and spin until the ice cream holds its shape. Transfer some of the ice cream to a piping bag and fill the chocolate-coated cones, smoothing the tops, then transfer the rest of the ice cream to a chilled loaf pan and freeze solid. Scooping from the loaf pan, place a scoop of ice cream over the top of each cone, smoothing with a small offset spatula to form nice domes. Freeze the cones overnight, then melt chocolat (truncated) 02:52:48.334 [debug] QUERY OK source="sources" db=0.2ms idle=81.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.334 [debug] QUERY OK source="media_items" db=0.2ms idle=4.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-28 13:00:19Z], 9] 02:52:48.337 [debug] QUERY OK source="media_items" db=2.3ms idle=4.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Zebra Cakes | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Little Debbie Zebra Cakes. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #zebracake #cake \n\nChapters:\n00:00 Intro\n00:43 Zebra Cakes\n01:20 Taste test (Original)\n06:28 Game plan\n06:41 Bake cake\n16:37 Make the filling\n22:23 Fill & stack\n25:28 Cut out hexagons\n27:56 Fondant & glaze\n38:14 Chocolate stripes\n42:15 Comparison\n45:28 Spud gets brushed!\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make zebra cakes, start by whisking ¾ cup cake flour, ¼ teaspoon baking powder, ⅛ teaspoon baking soda, and ¾ teaspoon kosher salt in a medium bowl. In a separate bowl, beat 3 egg yolks and ¼ cup sugar with a hand mixer until ribbony, then stream in ¼ cup neutral oil, ¼ cup buttermilk, and a teaspoon of vanilla extract. Pour the yolk mixture into the flour mixture and whisk until smooth. In a separate bowl, combine three egg whites, ¼ cup sugar, and a pinch of cream of tartar and beat with an electric mixer to stiff peaks. Fold the whites into the batter, then scrape onto a parchment-lined half sheet tray. Bake in a 225-degree oven until springy to the touch and golden, then let cool. Trim the edges then cut the sponge into 6-cm-wide strips and trim them horizontally so they’re about 7mm thick. Freeze the pieces. \n\nTo make the filling, combine 3 ounces egg whites, 5.5 ounces of sugar, ½ teaspoon kosher salt, and a pinch of cream of tartar in the bowl of a stand mixer set over a double boiler and stir until the sugar dissolves. Whip the egg whites until firm peaks form and the meringue is room temperature, then gradually beat in 10 ounces of room temperature butter. Scrape down the sides of the bowl and beat in 1 tablespoon of vanilla paste. Pipe a layer of buttercream onto the surfaces of the cake strips using a basketweave tip, then sandwich the cake together. Chill briefly, then cut out hexagons using a serrated knife and template. Chill the cakes. \n\nIn a large bowl, whisk together 4 cups powdered sugar, ¼ cup hot water, ¼ cup light corn syrup, and 1 teaspoon vanilla extract until smooth. Whisk in 142g melted white chocolate, then thin with more hot water to the desired consistency. Place over a saucepan of hot water to keep warm. Spread a thin layer over the tops of the cakes, let set at room temperature, then place the cakes one at a time glaze-size down on a large fork and spoon the glaze over the cakes until fully enrobed. Place on a wire rack and let set. Pipe thin lines of melted chocolate over the surfaces of the cakes in a wavy pattern and let set.", "I Tried Making Homemade Zebra Cakes | Claire Recreates", "78b920a6-61ee-43cf-990e-ae21221a834c", "OtgomG_a0jg", false, 2744, false, "https://www.youtube.com/watch?v=OtgomG_a0jg", 2, "/downloads/shows/Claire Recreates/Season 2024/s2024e052800 - I Tried Making Homemade Zebra Cakes | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-05-28 13:00:19Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Zebra Cakes | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tries to recreate beloved childhood snacks and popular meals with a unique twist. Today's episode focuses on the Little Debbie Zebra Cakes. Join Claire as she reimagines these beloved classics, serving up delicious recipes tailored for home cooking enthusiasts. If you're longing for a nostalgic foods and fascinated by the intricacies of recipe development, this series is for you! Don't miss out on Claire's creative take on classic dishes.\n\n#clairesaffitz #zebracake #cake \n\nChapters:\n00:00 Intro\n00:43 Zebra Cakes\n01:20 Taste test (Original)\n06:28 Game plan\n06:41 Bake cake\n16:37 Make the filling\n22:23 Fill & stack\n25:28 Cut out hexagons\n27:56 Fondant & glaze\n38:14 Chocolate stripes\n42:15 Comparison\n45:28 Spud gets brushed!\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nTo make zebra cakes, start by whisking ¾ cup cake flour, ¼ teaspoon baking powder, ⅛ teaspoon baking soda, and ¾ teaspoon kosher salt in a medium bowl. In a separate bowl, beat 3 egg yolks and ¼ cup sugar with a hand mixer until ribbony, then stream in ¼ cup neutral oil, ¼ cup buttermilk, and a teaspoon of vanilla extract. Pour the yolk mixture into the flour mixture and whisk until smooth. In a separate bowl, combine three egg whites, ¼ cup sugar, and a pinch of cream of tartar and beat with an electric mixer to stiff peaks. Fold the whites into the batter, then scrape onto a parchment-lined half sheet tray. Bake in a 225-degree oven until springy to the touch and golden, then let cool. Trim the edges then cut the sponge into 6-cm-wide strips and trim them horizontally so they’re about 7mm thick. Freeze the pieces. \n\nTo make the filling, combine 3 ounces egg whites, 5.5 ounces of sugar, ½ teaspoon kosher salt, and a pinch of cream of tartar in the bowl of a stand mixer set over a double boiler and stir until the sugar dissolves. Whip the egg whites until firm peaks form and the meringue is room temperature, then gradually beat in 10 ounces of room temperature butter. Scrape down the sides of the bowl and beat in 1 tablespoon of vanilla paste. Pipe a layer of buttercream onto the surfaces of the cake strips using a basketweave tip, then sandwich the cake together. Chill briefly, then cut out hexagons using a serrated knife and template. Chill the cakes. \n\nIn a large bowl, whisk together 4 cups powdered sugar, ¼ cup hot water, ¼ cup light corn syrup, and 1 teaspoon vanilla extract until smooth. Whisk in 142g melted white chocolate, then thin with more hot water to the desired consistency. Place over a saucepan of hot water to keep warm. Spread a thin layer over the tops of the cakes, let set at room temperature, then place the cakes one at a time glaze-size down on a large fork and spoon the glaze over the cakes until fully en (truncated) 02:52:48.338 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [9] 02:52:48.339 [debug] QUERY OK source="media_items" db=0.2ms idle=5.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-21 13:00:11Z], 9] 02:52:48.341 [debug] QUERY OK source="media_items" db=1.6ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Cosmic Brownies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tackles beloved childhood snacks and popular meals with a unique twist. In today's episode, she focuses on Little Debbie Cosmic Brownies. Join Claire as she reimagines these classics, offering delicious recipes perfect for home cooking enthusiasts. If you're nostalgic for your favorite foods and intrigued by the art of recipe development, this series is for you! Don't miss Claire's creative take on these timeless dishes.\n\n#cosmicbrownies #clairesaffitz #brownie \n\nChapters:\n00:00 Intro\n01:14 Basic components\n01:53 Taste test\n04:19 Measurements\n08:36 Game plan\n10:34 Temper the chocolate\n16:12 Make the candy coating\n23:29 Make the brownies\n29:12 Make the royal icing\n31:28 Make the glaze\n37:19 Assemble\n39:17 Conclusion\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nBROWNIES\n6.6 ounces bittersweet chocolate\n1 stick unsalted butter\n5.55 ounces confectioners’ sugar\n2 large egg yolks\n1 teaspoon kosher salt\n2 teaspoon vanilla extract or paste\n6 ounces all-purpose flour\n\nFUDGE FROSTING\n4 tablespoons unsalted butter\n1½ cups (300g) sugar\n2 tablespoons unsweetened cocoa powder\n¾ cup whole milk\nGenerous pinch of kosher salt\n1 teaspoon vanilla extract\n1½ ounces unsweetened chocolate\n\nBROWNIES: Preheat the oven to 350°F. Lightly butter the bottom and sides of a ¼ sheet pan. Line the bottom and two longer sides with a piece of parchment paper, smoothing to eliminate air bubbles. Melt chocolate and butter in a large bowl set over a double boiler, stirring often with a flexible heat-proof spatula. Remove from the heat and add the sugar, yolks, salt, and vanilla and whisk vigorously. Add the flour and fold thoroughly with the spatula until you have a homogenous dough. Spread into the prepared pan with an offset spatula in a smooth, even layer. Bake in a water bath until the brownies are set, 18 to 22 minutes. Remove from the oven and let cool completely.", "I Tried Making Homemade Cosmic Brownies | Claire Recreates", "4b27c0f3-14fa-4c0a-a52b-6d3fbd952b93", "BpA0hvBfnO0", false, 2675, false, "https://www.youtube.com/watch?v=BpA0hvBfnO0", 3, "/downloads/shows/Claire Recreates/Season 2024/s2024e062100 - I Tried Making Homemade Cosmic Brownies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-06-21 13:00:11Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Cosmic Brownies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz tackles beloved childhood snacks and popular meals with a unique twist. In today's episode, she focuses on Little Debbie Cosmic Brownies. Join Claire as she reimagines these classics, offering delicious recipes perfect for home cooking enthusiasts. If you're nostalgic for your favorite foods and intrigued by the art of recipe development, this series is for you! Don't miss Claire's creative take on these timeless dishes.\n\n#cosmicbrownies #clairesaffitz #brownie \n\nChapters:\n00:00 Intro\n01:14 Basic components\n01:53 Taste test\n04:19 Measurements\n08:36 Game plan\n10:34 Temper the chocolate\n16:12 Make the candy coating\n23:29 Make the brownies\n29:12 Make the royal icing\n31:28 Make the glaze\n37:19 Assemble\n39:17 Conclusion\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nBROWNIES\n6.6 ounces bittersweet chocolate\n1 stick unsalted butter\n5.55 ounces confectioners’ sugar\n2 large egg yolks\n1 teaspoon kosher salt\n2 teaspoon vanilla extract or paste\n6 ounces all-purpose flour\n\nFUDGE FROSTING\n4 tablespoons unsalted butter\n1½ cups (300g) sugar\n2 tablespoons unsweetened cocoa powder\n¾ cup whole milk\nGenerous pinch of kosher salt\n1 teaspoon vanilla extract\n1½ ounces unsweetened chocolate\n\nBROWNIES: Preheat the oven to 350°F. Lightly butter the bottom and sides of a ¼ sheet pan. Line the bottom and two longer sides with a piece of parchment paper, smoothing to eliminate air bubbles. Melt chocolate and butter in a large bowl set over a double boiler, stirring often with a flexible heat-proof spatula. Remove from the heat and add the sugar, yolks, salt, and vanilla and whisk vigorously. Add the flour and fold thoroughly with the spatula until you have a homogenous dough. Spread into the prepared pan with an offset spatula in a smooth, even layer. Bake in a water bath until the brownies are set, 18 to 22 minutes. Remove from the oven and let cool completely.", "I Tried Making Homemade Cosmic Brownies | Claire Recreates", "BpA0hvBfnO0", 2675, false, "https://www.youtube.com/watch?v=BpA0hvBfnO0", "/downloads/shows/Claire Recreates/Season 2024/s2024e062100 - I Tried Making Homemade Cosmic Brownies | Claire Recreates.mkv", false, 9, ~U[2024-06-21 13:00:11Z]] 02:52:48.342 [debug] QUERY OK source="sources" db=0.2ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.342 [debug] QUERY OK source="media_items" db=0.2ms idle=5.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-08 17:15:03Z], 9] 02:52:48.344 [debug] QUERY OK source="media_items" db=1.5ms idle=4.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz takes on nostalgic childhood snacks and popular meals, adding her own creative twist. In today's episode, she focuses on Strawberry Shortcake Bars, pairing them with homemade ice cream. Join Claire as she reimagines these classics, sharing delicious recipes perfect for home cooking enthusiasts. If you have a soft spot for your favorite foods and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive approach to these timeless treats.\n\n#strawberryshortcake #clairesaffitz #icecream \n\nChapters:\n00:00 Intro\n00:28 Strawberry shortcake bars\n01:12 Taste test\n02:53 Reading the ingredients\n04:01 Measurements\n07:03 Game plan\n09:16 Make the ice cream base\n12:47 Make strawberry ice cream base\n15:38 Make the strawberry cores\n24:07 Make cake crumbs\n28:34 Fill molds\n45:10 Assemble\n46:05 Comparison\n49:32 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nStrawberry Shortcake Bars\nMakes 8\n\nVANILLA ICE CREAM\n8 large egg yolks\n¾ cup granulated sugar\n½ teaspoon kosher salt\n1 tablespoon vanilla paste\n3 cups whole milk\n1 cup heavy cream\n\n1 pound strawberries chopped, mixed with 2 tbsp sugar, roasted at 275 for 1 hour, stir a few times, blend in to half of vanilla base and flavor with 1 Tbsp hibiscus powder and 20g freeze dried strawberries, strain, process\n\nSUGAR COOKIE CRUMBS\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour\n\nSTRAWBERRY VERSION\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour", "I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates", "dc0eb080-25ea-40aa-a4c7-df95e45ebcdf", "dPBXgwJD35E", false, 2988, false, "https://www.youtube.com/watch?v=dPBXgwJD35E", 4, "/downloads/shows/Claire Recreates/Season 2024/s2024e080800 - I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-08-08 17:15:03Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz takes on nostalgic childhood snacks and popular meals, adding her own creative twist. In today's episode, she focuses on Strawberry Shortcake Bars, pairing them with homemade ice cream. Join Claire as she reimagines these classics, sharing delicious recipes perfect for home cooking enthusiasts. If you have a soft spot for your favorite foods and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive approach to these timeless treats.\n\n#strawberryshortcake #clairesaffitz #icecream \n\nChapters:\n00:00 Intro\n00:28 Strawberry shortcake bars\n01:12 Taste test\n02:53 Reading the ingredients\n04:01 Measurements\n07:03 Game plan\n09:16 Make the ice cream base\n12:47 Make strawberry ice cream base\n15:38 Make the strawberry cores\n24:07 Make cake crumbs\n28:34 Fill molds\n45:10 Assemble\n46:05 Comparison\n49:32 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nStrawberry Shortcake Bars\nMakes 8\n\nVANILLA ICE CREAM\n8 large egg yolks\n¾ cup granulated sugar\n½ teaspoon kosher salt\n1 tablespoon vanilla paste\n3 cups whole milk\n1 cup heavy cream\n\n1 pound strawberries chopped, mixed with 2 tbsp sugar, roasted at 275 for 1 hour, stir a few times, blend in to half of vanilla base and flavor with 1 Tbsp hibiscus powder and 20g freeze dried strawberries, strain, process\n\nSUGAR COOKIE CRUMBS\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour\n\nSTRAWBERRY VERSION\n1 stick butter\n½ cup sugar\n1 teaspoon baking powder\n¾ teaspoon Diamond kosher\n2 tablespoons egg whites, from about 1 egg\n1 tablespoon heavy cream\n1 teaspoon vanilla extract\n150g all-purpose flour", "I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates", "dPBXgwJD35E", 2988, false, "https://www.youtube.com/watch?v=dPBXgwJD35E", "/downloads/shows/Claire Recreates/Season 2024/s2024e080800 - I Tried Making Homemade Strawberry Shortcake Bars | Claire Recreates.mkv", false, 9, ~U[2024-08-08 17:15:03Z]] 02:52:48.345 [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" = ?) [9] 02:52:48.345 [debug] QUERY OK source="media_items" db=0.2ms idle=4.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-25 13:00:05Z], 9] 02:52:48.348 [debug] QUERY OK source="media_items" db=1.6ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Uncrustables | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she tackles the beloved Smucker’s Uncrustables, giving them a creative, from-scratch makeover. Claire takes no shortcuts, making her own homemade white bread, peanut butter, and jelly, transforming this nostalgic lunchbox staple into something truly special. If you’re a fan of classic snacks and curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive twist on this timeless favorite.\n\n#clairesaffitz #homemade #uncrustables \n\nChapters:\n00:00 Intro\n00:54 How does Claire Saffitz make a PBJ?\n01:50 Taste test\n02:19 Basic Components\n02:48 Reading the Ingredients\n03:50 Game Plan\n04:32 Soft White Bread\n06:31 Cal calls Uncrustables\n06:59 Peanut butter\n13:44 Grape Jelly\n18:10 Assembly\n26:47 Comparison\n28:58 Cat Cam\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nSOFT WHITE BREAD\nMakes 1 loaf\n\nTANGZHONG\n½ cup whole milk\n½ cup water\n50g (6 tablespoons) bread flour\n\nDOUGH\n3 cups (390g) bread flour, plus more, if needed, for work surface\n¼ cup water\n¼ cup milk \n2 tablespoons granulated sugar\n4 tablespoons neutral oil\n9g kosher salt (2½ teaspoons Diamond Crystal kosher salt)\n2 teaspoons instant yeast\n\nGrape Jelly\n2 lbs green apples\n1 quart 100% Concord grape juice\n1 cup sugar\n2 tablespoons lemon juice\n\nPeanut Butter\n3 cups roasted salted peanuts, toasted until golden brown\nGenerous pinch of salt\n2 teaspoons of honey", "I Tried Making Homemade Uncrustables | Claire Recreates", "bc42f85d-bdd7-422d-aa93-c3cea800725c", "3eIbzifSZYY", false, 1750, false, "https://www.youtube.com/watch?v=3eIbzifSZYY", 5, "/downloads/shows/Claire Recreates/Season 2024/s2024e092500 - I Tried Making Homemade Uncrustables | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-09-25 13:00:05Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Uncrustables | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she tackles the beloved Smucker’s Uncrustables, giving them a creative, from-scratch makeover. Claire takes no shortcuts, making her own homemade white bread, peanut butter, and jelly, transforming this nostalgic lunchbox staple into something truly special. If you’re a fan of classic snacks and curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive twist on this timeless favorite.\n\n#clairesaffitz #homemade #uncrustables \n\nChapters:\n00:00 Intro\n00:54 How does Claire Saffitz make a PBJ?\n01:50 Taste test\n02:19 Basic Components\n02:48 Reading the Ingredients\n03:50 Game Plan\n04:32 Soft White Bread\n06:31 Cal calls Uncrustables\n06:59 Peanut butter\n13:44 Grape Jelly\n18:10 Assembly\n26:47 Comparison\n28:58 Cat Cam\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nRecipe:\nSOFT WHITE BREAD\nMakes 1 loaf\n\nTANGZHONG\n½ cup whole milk\n½ cup water\n50g (6 tablespoons) bread flour\n\nDOUGH\n3 cups (390g) bread flour, plus more, if needed, for work surface\n¼ cup water\n¼ cup milk \n2 tablespoons granulated sugar\n4 tablespoons neutral oil\n9g kosher salt (2½ teaspoons Diamond Crystal kosher salt)\n2 teaspoons instant yeast\n\nGrape Jelly\n2 lbs green apples\n1 quart 100% Concord grape juice\n1 cup sugar\n2 tablespoons lemon juice\n\nPeanut Butter\n3 cups roasted salted peanuts, toasted until golden brown\nGenerous pinch of salt\n2 teaspoons of honey", "I Tried Making Homemade Uncrustables | Claire Recreates", "3eIbzifSZYY", 1750, false, "https://www.youtube.com/watch?v=3eIbzifSZYY", "/downloads/shows/Claire Recreates/Season 2024/s2024e092500 - I Tried Making Homemade Uncrustables | Claire Recreates.mkv", false, 9, ~U[2024-09-25 13:00:05Z]] 02:52:48.348 [debug] QUERY OK source="sources" db=0.1ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.349 [debug] QUERY OK source="media_items" db=0.2ms idle=4.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-24 17:00:23Z], 9] 02:52:48.355 [debug] QUERY OK source="media_items" db=5.3ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she steps out to explore restaurant staples, starting with the iconic McDonald’s Apple Pie. Claire meticulously dissects the fast-food favorite, recreating it from scratch with her own version of a hand pie. From crafting a flaky, golden dough to making a perfectly spiced apple filling, Claire transforms this nostalgic dessert into a homemade masterpiece. If you love classic treats and are curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless favorite.\n\n#clairesaffitz #mcdonalds #applepie \n\nChapters:\n00:00 Intro\n00:30 McDonald’s Drive-Thru\n02:14 Back to the kitchen\n02:51 Measurements\n04:36 How To Make Baked Apple Pie\n04:49 Reading the Ingredients\n05:23 Doing some research\n05:49 How To Make Pastry\n09:47 How To Make Apple Filling\n21:09 Testing the lattice\n24:39 Assembly\n28:43 Baking\n30:26 McDonald’s vs Claire Saffitz\n32:18 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates", "07f9423f-acf7-47c0-9019-46bbf1b411e3", "JPcLcSbYL94", false, 1957, false, "https://www.youtube.com/watch?v=JPcLcSbYL94", 6, "/downloads/shows/Claire Recreates/Season 2024/s2024e102400 - I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-10-24 17:00:23Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on beloved childhood snacks and iconic treats, adding her signature homemade touch. In today’s episode, she steps out to explore restaurant staples, starting with the iconic McDonald’s Apple Pie. Claire meticulously dissects the fast-food favorite, recreating it from scratch with her own version of a hand pie. From crafting a flaky, golden dough to making a perfectly spiced apple filling, Claire transforms this nostalgic dessert into a homemade masterpiece. If you love classic treats and are curious about the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless favorite.\n\n#clairesaffitz #mcdonalds #applepie \n\nChapters:\n00:00 Intro\n00:30 McDonald’s Drive-Thru\n02:14 Back to the kitchen\n02:51 Measurements\n04:36 How To Make Baked Apple Pie\n04:49 Reading the Ingredients\n05:23 Doing some research\n05:49 How To Make Pastry\n09:47 How To Make Apple Filling\n21:09 Testing the lattice\n24:39 Assembly\n28:43 Baking\n30:26 McDonald’s vs Claire Saffitz\n32:18 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates", "JPcLcSbYL94", 1957, false, "https://www.youtube.com/watch?v=JPcLcSbYL94", "/downloads/shows/Claire Recreates/Season 2024/s2024e102400 - I Tried Making Homemade McDonald’s Apple Pie | Claire Recreates.mkv", false, 9, ~U[2024-10-24 17:00:23Z]] 02:52:48.355 [debug] QUERY OK source="sources" db=0.2ms idle=9.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.356 [debug] QUERY OK source="media_items" db=0.2ms idle=8.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-28 14:45:02Z], 9] 02:52:48.358 [debug] QUERY OK source="media_items" db=1.2ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Mallomars | Claire Recreates\nOn this special episode of Claire Recreates, Claire Saffitz tackles the beloved Mallomars, a treat adored in the Northeast but deserving of nationwide love. From crafting the perfect graham cracker base to whipping up a fluffy marshmallow and dipping it all in luscious chocolate, Claire brings this classic to life in a way only she can. If you love reimagined classics and want to celebrate the joy of homemade desserts, this episode is a must-watch. Don’t miss Claire’s creative take on this iconic treat—perfect for the holiday season! Happy Thanksgiving! We’re incredibly thankful for everyone who has joined us on this channel.\n\n#clairesaffitz #mallomars #smores #chocolate \n\nChapters:\n00:00 Intro\n00:25 Mallomars\n02:06 Measurements\n02:42 Ingredients\n03:30 Game plan\n03:58 Cookie base\n15:59 Marshmallow topper\n23:37 Assemble cookies\n24:59 Temper chocolate & enrobe\n29:27 Snap test\n30:03 Comparison\n31:53 Harris review\n32:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Mallomars | Claire Recreates", "7896e5e1-b983-4941-a741-a9f4da3af035", "Qh9zncazwM8", false, 1971, false, "https://www.youtube.com/watch?v=Qh9zncazwM8", 7, "/downloads/shows/Claire Recreates/Season 2024/s2024e112800 - I Tried Making Homemade Mallomars | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-11-28 14:45:02Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Mallomars | Claire Recreates\nOn this special episode of Claire Recreates, Claire Saffitz tackles the beloved Mallomars, a treat adored in the Northeast but deserving of nationwide love. From crafting the perfect graham cracker base to whipping up a fluffy marshmallow and dipping it all in luscious chocolate, Claire brings this classic to life in a way only she can. If you love reimagined classics and want to celebrate the joy of homemade desserts, this episode is a must-watch. Don’t miss Claire’s creative take on this iconic treat—perfect for the holiday season! Happy Thanksgiving! We’re incredibly thankful for everyone who has joined us on this channel.\n\n#clairesaffitz #mallomars #smores #chocolate \n\nChapters:\n00:00 Intro\n00:25 Mallomars\n02:06 Measurements\n02:42 Ingredients\n03:30 Game plan\n03:58 Cookie base\n15:59 Marshmallow topper\n23:37 Assemble cookies\n24:59 Temper chocolate & enrobe\n29:27 Snap test\n30:03 Comparison\n31:53 Harris review\n32:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Mallomars | Claire Recreates", "Qh9zncazwM8", 1971, false, "https://www.youtube.com/watch?v=Qh9zncazwM8", "/downloads/shows/Claire Recreates/Season 2024/s2024e112800 - I Tried Making Homemade Mallomars | Claire Recreates.mkv", false, 9, ~U[2024-11-28 14:45:02Z]] 02:52:48.358 [debug] QUERY OK source="sources" db=0.1ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.359 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-31 15:00:27Z], 9] 02:52:48.361 [debug] QUERY OK source="media_items" db=1.2ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Milano Cookies | Claire Recreates\nIn this special holiday episode of Claire Recreates, Claire Saffitz takes on the beloved Pepperidge Farm Milano Cookies, a holiday favorite that deserves a homemade makeover. Claire is determined to recreate the classic cookie, from baking the perfect buttery, delicate biscuit to making a smooth, decadent chocolate filling. With her signature flair, Claire transforms this iconic treat into a homemade version that’s even more irresistible than the original. If you love reimagined classics and want to impress your guests with a holiday dessert that’s both nostalgic and elevated, this episode is a must-watch. Don’t miss Claire’s delicious twist on the Milano Cookie—perfect for celebrating the season! As we close out 2024, we’re incredibly thankful for everyone who’s supported this channel. Happy Holidays!\n\n#clairesaffitz #cookies #dessert \n\nChapters:\n00:00 Intro\n00:26 Milano cookies\n02:08 Taste test\n02:46 Measurements\n03:54 Reading the ingredients\n04:54 Game plan\n05:22 Harris' Milano Tip\n06:12 Make & bake cookies\n07:47 Making the batter\n09:47 Piping the cookies\n13:36 Making cookie improvements\n29:33 Make mint layer\n31:55 Temper chocolate\n33:29 Assembly\n35:06 Comparison \n36:24 Harris’ review\n36:56 Conclusion\n37:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Milano Cookies | Claire Recreates", "cc9a1af6-5724-4cb1-b413-c1a1ecb0a93b", "L_Xu-Tt7fHA", false, 2271, false, "https://www.youtube.com/watch?v=L_Xu-Tt7fHA", 8, "/downloads/shows/Claire Recreates/Season 2024/s2024e123100 - I Tried Making Homemade Milano Cookies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-12-31 15:00:27Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Milano Cookies | Claire Recreates\nIn this special holiday episode of Claire Recreates, Claire Saffitz takes on the beloved Pepperidge Farm Milano Cookies, a holiday favorite that deserves a homemade makeover. Claire is determined to recreate the classic cookie, from baking the perfect buttery, delicate biscuit to making a smooth, decadent chocolate filling. With her signature flair, Claire transforms this iconic treat into a homemade version that’s even more irresistible than the original. If you love reimagined classics and want to impress your guests with a holiday dessert that’s both nostalgic and elevated, this episode is a must-watch. Don’t miss Claire’s delicious twist on the Milano Cookie—perfect for celebrating the season! As we close out 2024, we’re incredibly thankful for everyone who’s supported this channel. Happy Holidays!\n\n#clairesaffitz #cookies #dessert \n\nChapters:\n00:00 Intro\n00:26 Milano cookies\n02:08 Taste test\n02:46 Measurements\n03:54 Reading the ingredients\n04:54 Game plan\n05:22 Harris' Milano Tip\n06:12 Make & bake cookies\n07:47 Making the batter\n09:47 Piping the cookies\n13:36 Making cookie improvements\n29:33 Make mint layer\n31:55 Temper chocolate\n33:29 Assembly\n35:06 Comparison \n36:24 Harris’ review\n36:56 Conclusion\n37:33 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Milano Cookies | Claire Recreates", "L_Xu-Tt7fHA", 2271, false, "https://www.youtube.com/watch?v=L_Xu-Tt7fHA", "/downloads/shows/Claire Recreates/Season 2024/s2024e123100 - I Tried Making Homemade Milano Cookies | Claire Recreates.mkv", false, 9, ~U[2024-12-31 15:00:27Z]] 02:52:48.361 [debug] QUERY OK source="sources" db=0.1ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.362 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-30 14:00:49Z], 9] 02:52:48.364 [debug] QUERY OK source="media_items" db=1.5ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz dives into beloved childhood snacks and iconic treats, adding her own creative flair. In today’s episode, she focuses on the classic Little Debbie Oatmeal Creme Pies, transforming them with a homemade twist. Join Claire as she reimagines this nostalgic favorite, sharing mouthwatering recipes perfect for home baking enthusiasts. If you have a fondness for your favorite snacks and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless treat.\n\n#clairesaffitz #oatmeal #pie \n\nChapters:\n\n00:00 Intro\n01:10 Measurements\n01:29 Smell and taste test\n02:22 Ingredients\n03:42 Game plan\n03:49 Make cookie dough + bake\n13:21 Make adjustments to cookies\n22:11 Marshmallow cream\n25:29 Assemble\n26:19 Comparison\n27:55 Harris review\n28:32 Conclusion\n29:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n (¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1½ cups all-purpose flour\n2 teaspoons baking soda\n1 teaspoon kosher salt\n¾ teaspoon cinnamon\nPinch of ground cloves\n8 tablespoons (1 stick) unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon King Arthur Pure Vanilla Extract", "I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates", "8fa197e6-4da3-4f7e-8356-c10f8fd013e6", "qX5AKIh2x_4", false, 1755, false, "https://www.youtube.com/watch?v=qX5AKIh2x_4", 9, "/downloads/shows/Claire Recreates/Season 2024/s2024e083000 - I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2024-08-30 14:00:49Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates\nIn her exciting new YouTube series, \"Claire Recreates,\" Claire Saffitz dives into beloved childhood snacks and iconic treats, adding her own creative flair. In today’s episode, she focuses on the classic Little Debbie Oatmeal Creme Pies, transforming them with a homemade twist. Join Claire as she reimagines this nostalgic favorite, sharing mouthwatering recipes perfect for home baking enthusiasts. If you have a fondness for your favorite snacks and a curiosity for the art of recipe development, this series is a must-watch! Don’t miss Claire’s inventive take on this timeless treat.\n\n#clairesaffitz #oatmeal #pie \n\nChapters:\n\n00:00 Intro\n01:10 Measurements\n01:29 Smell and taste test\n02:22 Ingredients\n03:42 Game plan\n03:49 Make cookie dough + bake\n13:21 Make adjustments to cookies\n22:11 Marshmallow cream\n25:29 Assemble\n26:19 Comparison\n27:55 Harris review\n28:32 Conclusion\n29:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n (¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1½ cups all-purpose flour\n2 teaspoons baking soda\n1 teaspoon kosher salt\n¾ teaspoon cinnamon\nPinch of ground cloves\n8 tablespoons (1 stick) unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon King Arthur Pure Vanilla Extract", "I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates", "qX5AKIh2x_4", 1755, false, "https://www.youtube.com/watch?v=qX5AKIh2x_4", "/downloads/shows/Claire Recreates/Season 2024/s2024e083000 - I Tried Making Homemade Oatmeal Creme Pies | Claire Recreates.mkv", false, 9, ~U[2024-08-30 14:00:49Z]] 02:52:48.364 [debug] QUERY OK source="sources" db=0.1ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.365 [debug] QUERY OK source="media_items" db=0.4ms idle=4.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-20 14:00:30Z], 9] 02:52:48.367 [debug] QUERY OK source="media_items" db=1.4ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on the challenge of recreating beloved childhood snacks and iconic treats—but this time, she’s in new territory. In today’s episode, Claire tackles the Kinder Bueno, attempting to craft the crispy, creamy chocolate bar from scratch—all from a rental kitchen. With limited tools and unfamiliar surroundings, she puts her skills to the test, proving that great recipes can come together anywhere. If you love nostalgic sweets and the thrill of recipe experimentation, this episode is a must-watch!\n\n#kinderbueno #clairesaffitz #chocolate \n\nChapters\n00:00 Intro\n00:26 How To Make Kinder Bueno\n02:46 Measurements\n02:59 Taste test\n04:53 Ingredients\n06:14 Molds\n11:07 How To Make Kinder Bueno Wafers\n18:10 100% polycarbonate\n20:04 Plan B?\n21:37 Lessons learned\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates", "61e090ae-10ae-4814-8ab9-21a90eb57b54", "ipwx-AzyDNk", false, 1385, false, "https://www.youtube.com/watch?v=ipwx-AzyDNk", 10, "/downloads/shows/Claire Recreates/Season 2025/s2025e032000 - I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-03-20 14:00:30Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates\nIn her exciting YouTube series, Claire Recreates, Claire Saffitz takes on the challenge of recreating beloved childhood snacks and iconic treats—but this time, she’s in new territory. In today’s episode, Claire tackles the Kinder Bueno, attempting to craft the crispy, creamy chocolate bar from scratch—all from a rental kitchen. With limited tools and unfamiliar surroundings, she puts her skills to the test, proving that great recipes can come together anywhere. If you love nostalgic sweets and the thrill of recipe experimentation, this episode is a must-watch!\n\n#kinderbueno #clairesaffitz #chocolate \n\nChapters\n00:00 Intro\n00:26 How To Make Kinder Bueno\n02:46 Measurements\n02:59 Taste test\n04:53 Ingredients\n06:14 Molds\n11:07 How To Make Kinder Bueno Wafers\n18:10 100% polycarbonate\n20:04 Plan B?\n21:37 Lessons learned\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates", "ipwx-AzyDNk", 1385, false, "https://www.youtube.com/watch?v=ipwx-AzyDNk", "/downloads/shows/Claire Recreates/Season 2025/s2025e032000 - I Tried Making Homemade Kinder Bueno Bars Pt. 1 | Claire Recreates.mkv", false, 9, ~U[2025-03-20 14:00:30Z]] 02:52:48.368 [debug] QUERY OK source="sources" db=0.2ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.368 [debug] QUERY OK source="media_items" db=0.2ms idle=4.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-01 14:00:48Z], 9] 02:52:48.370 [debug] QUERY OK source="media_items" db=1.4ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Australian Tim Tams | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on one of the most iconic Australian snacks of all time — Tim Tams. Known for their rich chocolate coating, creamy filling, and signature crunchy biscuit texture, Tim Tams are a beloved treat across Australia and beyond. Claire attempts to recreate Tim Tams from scratch, using her precise baking techniques and deep understanding of pastry science to reverse-engineer this layered chocolate biscuit sandwich at home.\n\nWatch as Claire tests different chocolate biscuit recipes, explores the mechanics of the perfect Tim Tam Slam, and tackles the challenge of replicating a store-bought snack with homemade methods. This episode blends Claire’s signature charm with technical baking as she breaks down how to make homemade Tim Tams, one of the most recognizable Australian treats.\n\nIf you’re a fan of nostalgic snack recipes, iconic cookie recreations, or just love watching detailed step-by-step baking challenges, this episode is for you.\n\n#ClaireSaffitz #ClaireRecreates #TimTams #ChocolateBiscuits #BakingChallenge #dessertperson \n\nChapters\n\n00:00 Intro\n00:18 Tim Tams\n01:53 Taste test\n03:56 Measurements\n04:59 Reading the Ingredients\n06:25 Game plan\n06:42 Make cookies / biscuits\n14:14 Use pasta roller\n17:31 Make filling\n19:13 Assemble\n22:02 Enrobe\n23:13 Comparison\n25:38 Cat cam\n\nChocolate biscuit\n1½ cups all-purpose flour\n½ cup unsweetened cocoa powder\n2 tablespoon malted milk powder \n¾ teaspoon kosher salt\n½ teaspoon baking powder \n1 stick unsalted butter, at cool room temperature \n¾ cup sugar\n1 large egg\n2 teaspoons pure vanilla extract\n\nChocolate cream filling: \n150g milk chocolate, chopped\n150g heavy cream\nSalt\n\nChocolate coating \nDark chocolate\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Australian Tim Tams | Claire Recreates", "78533110-860f-43d9-9037-cb4c22642a1d", "X5-yAJszoB0", false, 1555, false, "https://www.youtube.com/watch?v=X5-yAJszoB0", 11, "/downloads/shows/Claire Recreates/Season 2025/s2025e050100 - I Tried Making Homemade Australian Tim Tams | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-05-01 14:00:48Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Australian Tim Tams | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on one of the most iconic Australian snacks of all time — Tim Tams. Known for their rich chocolate coating, creamy filling, and signature crunchy biscuit texture, Tim Tams are a beloved treat across Australia and beyond. Claire attempts to recreate Tim Tams from scratch, using her precise baking techniques and deep understanding of pastry science to reverse-engineer this layered chocolate biscuit sandwich at home.\n\nWatch as Claire tests different chocolate biscuit recipes, explores the mechanics of the perfect Tim Tam Slam, and tackles the challenge of replicating a store-bought snack with homemade methods. This episode blends Claire’s signature charm with technical baking as she breaks down how to make homemade Tim Tams, one of the most recognizable Australian treats.\n\nIf you’re a fan of nostalgic snack recipes, iconic cookie recreations, or just love watching detailed step-by-step baking challenges, this episode is for you.\n\n#ClaireSaffitz #ClaireRecreates #TimTams #ChocolateBiscuits #BakingChallenge #dessertperson \n\nChapters\n\n00:00 Intro\n00:18 Tim Tams\n01:53 Taste test\n03:56 Measurements\n04:59 Reading the Ingredients\n06:25 Game plan\n06:42 Make cookies / biscuits\n14:14 Use pasta roller\n17:31 Make filling\n19:13 Assemble\n22:02 Enrobe\n23:13 Comparison\n25:38 Cat cam\n\nChocolate biscuit\n1½ cups all-purpose flour\n½ cup unsweetened cocoa powder\n2 tablespoon malted milk powder \n¾ teaspoon kosher salt\n½ teaspoon baking powder \n1 stick unsalted butter, at cool room temperature \n¾ cup sugar\n1 large egg\n2 teaspoons pure vanilla extract\n\nChocolate cream filling: \n150g milk chocolate, chopped\n150g heavy cream\nSalt\n\nChocolate coating \nDark chocolate\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Australian Tim Tams | Claire Recreates", "X5-yAJszoB0", 1555, false, "https://www.youtube.com/watch?v=X5-yAJszoB0", "/downloads/shows/Claire Recreates/Season 2025/s2025e050100 - I Tried Making Homemade Australian Tim Tams | Claire Recreates.mkv", false, 9, ~U[2025-05-01 14:00:48Z]] 02:52:48.371 [debug] QUERY OK source="sources" db=0.1ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.371 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-18 14:00:44Z], 9] 02:52:48.373 [debug] QUERY OK source="media_items" db=1.4ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Tokyo Bananas | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on Japan’s most beloved souvenir treat ... the Tokyo Banana. These soft sponge cakes filled with sweet banana custard are a staple of Japanese train stations, gift shops, and childhood memories. Claire breaks it down step-by-step, making everything from scratch, from the light-as-air sponge cake to the rich banana cream filling.\n\nWhether you’re a Tokyo Banana superfan or discovering this iconic snack for the first time, follow along as Claire gives this classic the Dessert Person™ treatment.\n\n#TokyoBanana #ClaireSaffitz #ClaireRecreates #JapaneseSnacks #BananaCustard #SpongeCakeRecipe #JapaneseBaking #DessertPerson \n\nTOKYO BANANA (Recreates)\n\nSPONGE CAKE\n4 egg yolks, at room temperature\n20g sugar\n40 ml milk \n40g oil\n½ teaspoon vanilla extract\n30g all-purpose flour\n30g cornstarch\n4 egg whites, at room temperature\nPinch of salt \n¼ teaspoon cream of tartar \n60g sugar \n\nBANANA CREAM\n⅓ cup sugar \n3 tablespoons cornstarch\n½ teaspoon Diamond Crystal kosher salt \n4 large egg yolks\n1⅔ cups heavy cream, chilled\n1 cup mashed overripe banana (8.5 oz / 240g), from about 2 medium\n\nChapters\n00:00 Intro\n00:19 Tokyo Banana\n01:05 Smell test\n02:08 Taste test\n02:29 Measurements\n03:56 Reading the ingredients\n05:12 How to make Tokyo Banana\n05:35 Make banana custard + cool\n10:47 How to make chiffon sponge\n17:31 Construction apparatus\n21:57 Assembly + chill\n24:12 Comparison\n26:56 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Tokyo Bananas | Claire Recreates", "a4e444e3-66a9-45df-9097-b25c75387aa2", "RWE_WnFfvcI", false, 1634, false, "https://www.youtube.com/watch?v=RWE_WnFfvcI", 12, "/downloads/shows/Claire Recreates/Season 2025/s2025e061800 - I Tried Making Homemade Tokyo Bananas | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-06-18 14:00:44Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Tokyo Bananas | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on Japan’s most beloved souvenir treat ... the Tokyo Banana. These soft sponge cakes filled with sweet banana custard are a staple of Japanese train stations, gift shops, and childhood memories. Claire breaks it down step-by-step, making everything from scratch, from the light-as-air sponge cake to the rich banana cream filling.\n\nWhether you’re a Tokyo Banana superfan or discovering this iconic snack for the first time, follow along as Claire gives this classic the Dessert Person™ treatment.\n\n#TokyoBanana #ClaireSaffitz #ClaireRecreates #JapaneseSnacks #BananaCustard #SpongeCakeRecipe #JapaneseBaking #DessertPerson \n\nTOKYO BANANA (Recreates)\n\nSPONGE CAKE\n4 egg yolks, at room temperature\n20g sugar\n40 ml milk \n40g oil\n½ teaspoon vanilla extract\n30g all-purpose flour\n30g cornstarch\n4 egg whites, at room temperature\nPinch of salt \n¼ teaspoon cream of tartar \n60g sugar \n\nBANANA CREAM\n⅓ cup sugar \n3 tablespoons cornstarch\n½ teaspoon Diamond Crystal kosher salt \n4 large egg yolks\n1⅔ cups heavy cream, chilled\n1 cup mashed overripe banana (8.5 oz / 240g), from about 2 medium\n\nChapters\n00:00 Intro\n00:19 Tokyo Banana\n01:05 Smell test\n02:08 Taste test\n02:29 Measurements\n03:56 Reading the ingredients\n05:12 How to make Tokyo Banana\n05:35 Make banana custard + cool\n10:47 How to make chiffon sponge\n17:31 Construction apparatus\n21:57 Assembly + chill\n24:12 Comparison\n26:56 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Tokyo Bananas | Claire Recreates", "RWE_WnFfvcI", 1634, false, "https://www.youtube.com/watch?v=RWE_WnFfvcI", "/downloads/shows/Claire Recreates/Season 2025/s2025e061800 - I Tried Making Homemade Tokyo Bananas | Claire Recreates.mkv", false, 9, ~U[2025-06-18 14:00:44Z]] 02:52:48.374 [debug] QUERY OK source="sources" db=0.1ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.374 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-14 14:01:08Z], 9] 02:52:48.376 [debug] QUERY OK source="media_items" db=1.5ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates\nJoin Claire Saffitz in this episode of Claire Recreates as she takes on the beloved Mexican snack cake, Gansitos. From fluffy sponge cake to rich strawberry jam, creamy filling, and a decadent chocolate coating, Claire shows you how to recreate this nostalgic treat from scratch. Whether you grew up with Gansitos or are discovering them for the first time, this recipe is a delicious trip down memory lane.\nFilmed with baking techniques and inspired by the original Marinela Gansito, Claire walks through every step, sharing tips, baking science, and fun behind-the-scenes moments. Perfect for fans of Mexican desserts, snack cake lovers, and anyone curious about making iconic treats at home.\n\n#gansitos #cake #clairesaffitz #snackcake #chocolatedessert #strawberry \n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin → softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla extract\n\nSTRAWBERRY JELLY\n\nSPONGE CAKE\n4 large eggs, whites and yolks separated, at room temperature\n½ cup (100g) granulated sugar, divided\n4 tablespoons whole milk (60ml)\n½ teaspoon kosher salt\n¼ teaspoon cream of tartar\n¼ cup neutral oil\n⅔ cup (85g) all-purpose flour\n1 teaspoon vanilla extract\n\nChapters:\n00:00 Intro\n00:29 Gansitos\n00:58 First impressions\n01:19 Smell test\n01:29 Taste test\n01:57 Measurements\n03:17 Reading the Ingredients\n06:26 Game plan\n06:42 Make sprinkles\n09:50 Strawberry jelly\n10:57 Trip to apple orchard\n11:44 Strawberry jelly continued\n12:38 Bake sponge\n21:55 Creme filling\n25:40 Chocolate poured fondant + assembly\n29:37 Comparison\n31:42 Cat cam\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates", "26ae35dc-6f81-4128-a309-fe0c40a79196", "k9rGZzQswI0", false, 1919, false, "https://www.youtube.com/watch?v=k9rGZzQswI0", 13, "/downloads/shows/Claire Recreates/Season 2025/s2025e081400 - I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-08-14 14:01:08Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates\nJoin Claire Saffitz in this episode of Claire Recreates as she takes on the beloved Mexican snack cake, Gansitos. From fluffy sponge cake to rich strawberry jam, creamy filling, and a decadent chocolate coating, Claire shows you how to recreate this nostalgic treat from scratch. Whether you grew up with Gansitos or are discovering them for the first time, this recipe is a delicious trip down memory lane.\nFilmed with baking techniques and inspired by the original Marinela Gansito, Claire walks through every step, sharing tips, baking science, and fun behind-the-scenes moments. Perfect for fans of Mexican desserts, snack cake lovers, and anyone curious about making iconic treats at home.\n\n#gansitos #cake #clairesaffitz #snackcake #chocolatedessert #strawberry \n\nMARSHMALLOW FILLING\n¼ teaspoon gelatin → softened in 1½ teaspoons ice water\n38g water\n75g granulated sugar\n117g light corn syrup\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla extract\n\nSTRAWBERRY JELLY\n\nSPONGE CAKE\n4 large eggs, whites and yolks separated, at room temperature\n½ cup (100g) granulated sugar, divided\n4 tablespoons whole milk (60ml)\n½ teaspoon kosher salt\n¼ teaspoon cream of tartar\n¼ cup neutral oil\n⅔ cup (85g) all-purpose flour\n1 teaspoon vanilla extract\n\nChapters:\n00:00 Intro\n00:29 Gansitos\n00:58 First impressions\n01:19 Smell test\n01:29 Taste test\n01:57 Measurements\n03:17 Reading the Ingredients\n06:26 Game plan\n06:42 Make sprinkles\n09:50 Strawberry jelly\n10:57 Trip to apple orchard\n11:44 Strawberry jelly continued\n12:38 Bake sponge\n21:55 Creme filling\n25:40 Chocolate poured fondant + assembly\n29:37 Comparison\n31:42 Cat cam\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates", "k9rGZzQswI0", 1919, false, "https://www.youtube.com/watch?v=k9rGZzQswI0", "/downloads/shows/Claire Recreates/Season 2025/s2025e081400 - I Tried Making Homemade Gansitos - Mexico’s Iconic Snack Cake | Claire Recreates.mkv", false, 9, ~U[2025-08-14 14:01:08Z]] 02:52:48.377 [debug] QUERY OK source="sources" db=0.1ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.377 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-26 14:01:14Z], 9] 02:52:48.379 [debug] QUERY OK source="media_items" db=1.4ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Nutter Butter Cookies | Claire Recreates\nCan Claire Saffitz recreate the iconic Nutter Butter cookie at home? In this episode of Claire Recreates, Claire takes on the challenge of making homemade Nutter Butters completely from scratch. She bakes crunchy peanut shaped cookies and fills them with creamy peanut butter frosting.\n\nFrom mixing the dough to shaping the classic peanut design and testing the filling, Claire shows every step of the process as she compares homemade vs store bought Nutter Butters. Does the DIY version hold up against the nostalgic packaged cookie? Watch to find out.\n\nIf you have ever wondered how to make Nutter Butter cookies at home or wanted to see how they compare to the original, this video has the recipes, techniques, and taste test you are looking for.\n\n#ClaireSaffitz #ClaireRecreates #NutterButter #HomemadeCookies #baking \n\nIngredients:\nDOUGH\n2½ cups all-purpose flour \n½ teaspoon whole wheat flour \n¼ teaspoon baking soda\n1½ teaspoons Diamond Crystal kosher salt\n2 sticks unsalted butter, at room temperature\n1 cup granulated sugar\n1 cup natural smooth peanut butter\n2 large eggs (3.5 oz / 100g)\n1 teaspoon vanilla extract\nFILLING\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nChapters\n00:00 Intro\n00:16 How To Make Nutter Butter Cookies\n00:40 First impressions\n01:53 Ingredients\n02:54 Measurements\n04:01 Wood carving kit\n05:08 Game plan\n05:20 Cookie stamp\n10:02 Make Nutter Butter Cookies\n19:15 Bake\n20:57 Filling\n23:09 Assembly\n23:38 Comparison\n25:23 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Nutter Butter Cookies | Claire Recreates", "266297e1-b252-4646-b240-0511ff99b5d6", "ck6D0SdiYA0", false, 1540, false, "https://www.youtube.com/watch?v=ck6D0SdiYA0", 14, "/downloads/shows/Claire Recreates/Season 2025/s2025e092600 - I Tried Making Homemade Nutter Butter Cookies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-09-26 14:01:14Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Nutter Butter Cookies | Claire Recreates\nCan Claire Saffitz recreate the iconic Nutter Butter cookie at home? In this episode of Claire Recreates, Claire takes on the challenge of making homemade Nutter Butters completely from scratch. She bakes crunchy peanut shaped cookies and fills them with creamy peanut butter frosting.\n\nFrom mixing the dough to shaping the classic peanut design and testing the filling, Claire shows every step of the process as she compares homemade vs store bought Nutter Butters. Does the DIY version hold up against the nostalgic packaged cookie? Watch to find out.\n\nIf you have ever wondered how to make Nutter Butter cookies at home or wanted to see how they compare to the original, this video has the recipes, techniques, and taste test you are looking for.\n\n#ClaireSaffitz #ClaireRecreates #NutterButter #HomemadeCookies #baking \n\nIngredients:\nDOUGH\n2½ cups all-purpose flour \n½ teaspoon whole wheat flour \n¼ teaspoon baking soda\n1½ teaspoons Diamond Crystal kosher salt\n2 sticks unsalted butter, at room temperature\n1 cup granulated sugar\n1 cup natural smooth peanut butter\n2 large eggs (3.5 oz / 100g)\n1 teaspoon vanilla extract\nFILLING\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nChapters\n00:00 Intro\n00:16 How To Make Nutter Butter Cookies\n00:40 First impressions\n01:53 Ingredients\n02:54 Measurements\n04:01 Wood carving kit\n05:08 Game plan\n05:20 Cookie stamp\n10:02 Make Nutter Butter Cookies\n19:15 Bake\n20:57 Filling\n23:09 Assembly\n23:38 Comparison\n25:23 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Nutter Butter Cookies | Claire Recreates", "ck6D0SdiYA0", 1540, false, "https://www.youtube.com/watch?v=ck6D0SdiYA0", "/downloads/shows/Claire Recreates/Season 2025/s2025e092600 - I Tried Making Homemade Nutter Butter Cookies | Claire Recreates.mkv", false, 9, ~U[2025-09-26 14:01:14Z]] 02:52:48.380 [debug] QUERY OK source="sources" db=0.1ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.380 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 14:00:01Z], 9] 02:52:48.383 [debug] QUERY OK source="media_items" db=1.8ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Many thanks to our sponsor for today’s episode, Cometeer. If you’re interested in trying curated coffees from top roasters like Onyx, Proud Mary, and Intelligentsia, you can save $20 on your Discovery Box order by using the link http://cometeer.com/clairesaffitz . It’s the perfect way to start your morning or to give as a thoughtful gift this holiday season.\n\nI Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates \nIn this episode of Claire Recreates, Claire takes on the new-ish Hostess Iced Pumpkin Cupcake and makes it completely from scratch at home. Every fall, this limited-edition treat shows up in grocery stores and reminds us that pumpkin season has officially started. Claire dives into what makes it so nostalgic - the spiced pumpkin cake, the creamy filling, and that signature orange icing swirl -then recreates each element in her own kitchen.\n\nYou’ll see how she builds the cupcake step by step, from baking the soft pumpkin base to mixing the fluffy cream center and topping it with a smooth icing. She also shares a few tricks for getting the flavor and texture as close as possible to the original. Whether you’ve been waiting all year for pumpkin desserts or just love seeing classic snacks get a homemade twist, this one will make you want to preheat your oven.\n\nWatch until the end to see if Claire can match the look and taste of the real Hostess version, and find out how her homemade cupcakes compare. \n\nSubscribe for more recreations of nostalgic snacks and fall baking recipes, and let us know what Claire should tackle next.\n\n#ClaireRecreates #FallBaking #PumpkinDessert\n\nChapters\n00:00 Intro\n00:27 First impressions\n01:23 Smell test\n01:43 Taste test\n02:16 Measurements\n03:09 Reading the ingredients\n05:07 How To Make Iced Pumpkin Cupcakes\n06:43 How To Bake Cupcakes\n15:01 Coffee break\n16:40 Troubleshooting cupcakes\n19:44 How To Make Icing For Cupcakes\n27:40 Icing + decorating\n29:39 Comparison\n32:41 Cat cam\n\n\nIngredients\n\nCake\n1 cup mashed cooked sugar pumpkin (8.2 oz / 232g)\n⅓ cup milk\n1 teaspoon vanilla extract\n1½ cups all-purpose flour (7 oz / 200g)\n1½ teaspoons baking powder (0.21 oz / 6g)\n½ teaspoon ground cinnamon\n½ teaspoon Chinese five spice powder\n½ teaspoon ground turmeric\n¾ teaspoon Diamond Crystal kosher salt\n2 large eggs (3.5 oz / 100g), at room temperature\n¾ cup sugar (6.2 oz / 175g)\n¼ cup brown sugar\n½ cup neutral oil (3.9 oz / 110g)\n\nMarshmallow Filling\n38g water\n75g granulated sugar\n117g light corn syrup\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla paste\n\nIcing\nConfectioners’ sugar\nSour cream\nCorn syrup\nSalt\nVanilla\n\nSquiggles\nConfectioners’ sugar\nTurmeric\nBeet powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates", "4a4ebf5f-9c33-4f42-828f-53591029e8eb", "-veNfe5ZUF0", false, 1979, false, "https://www.youtube.com/watch?v=-veNfe5ZUF0", 15, "/downloads/shows/Claire Recreates/Season 2025/s2025e102300 - I Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-10-23 14:00:01Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "Many thanks to our sponsor for today’s episode, Cometeer. If you’re interested in trying curated coffees from top roasters like Onyx, Proud Mary, and Intelligentsia, you can save $20 on your Discovery Box order by using the link http://cometeer.com/clairesaffitz . It’s the perfect way to start your morning or to give as a thoughtful gift this holiday season.\n\nI Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates \nIn this episode of Claire Recreates, Claire takes on the new-ish Hostess Iced Pumpkin Cupcake and makes it completely from scratch at home. Every fall, this limited-edition treat shows up in grocery stores and reminds us that pumpkin season has officially started. Claire dives into what makes it so nostalgic - the spiced pumpkin cake, the creamy filling, and that signature orange icing swirl -then recreates each element in her own kitchen.\n\nYou’ll see how she builds the cupcake step by step, from baking the soft pumpkin base to mixing the fluffy cream center and topping it with a smooth icing. She also shares a few tricks for getting the flavor and texture as close as possible to the original. Whether you’ve been waiting all year for pumpkin desserts or just love seeing classic snacks get a homemade twist, this one will make you want to preheat your oven.\n\nWatch until the end to see if Claire can match the look and taste of the real Hostess version, and find out how her homemade cupcakes compare. \n\nSubscribe for more recreations of nostalgic snacks and fall baking recipes, and let us know what Claire should tackle next.\n\n#ClaireRecreates #FallBaking #PumpkinDessert\n\nChapters\n00:00 Intro\n00:27 First impressions\n01:23 Smell test\n01:43 Taste test\n02:16 Measurements\n03:09 Reading the ingredients\n05:07 How To Make Iced Pumpkin Cupcakes\n06:43 How To Bake Cupcakes\n15:01 Coffee break\n16:40 Troubleshooting cupcakes\n19:44 How To Make Icing For Cupcakes\n27:40 Icing + decorating\n29:39 Comparison\n32:41 Cat cam\n\n\nIngredients\n\nCake\n1 cup mashed cooked sugar pumpkin (8.2 oz / 232g)\n⅓ cup milk\n1 teaspoon vanilla extract\n1½ cups all-purpose flour (7 oz / 200g)\n1½ teaspoons baking powder (0.21 oz / 6g)\n½ teaspoon ground cinnamon\n½ teaspoon Chinese five spice powder\n½ teaspoon ground turmeric\n¾ teaspoon Diamond Crystal kosher salt\n2 large eggs (3.5 oz / 100g), at room temperature\n¾ cup sugar (6.2 oz / 175g)\n¼ cup brown sugar\n½ cup neutral oil (3.9 oz / 110g)\n\nMarshmallow Filling\n38g water\n75g granulated sugar\n117g light corn syrup\n¼ teaspoon gelatin, softened in 1½ teaspoons ice water\n30g egg whites, at room temperature\n¼ teaspoon cream of tartar\n1 teaspoon vanilla paste\n\nIcing\nConfectioners’ sugar\nSour cream\nCorn syrup\nSalt\nVanilla\n\nSquiggles\nConfectioners’ sugar\nTurmeric\nBeet powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Hostess Iced Pumpkin Cupcakes | Claire Recreates", "-veNfe5ZUF0", 1979, false, "https://www.youtube.com/watch?v=-veNfe5ZUF0", "/downloa (truncated) 02:52:48.383 [debug] QUERY OK source="sources" db=0.1ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.384 [debug] QUERY OK source="media_items" db=0.2ms idle=4.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 14:01:10Z], 9] 02:52:48.386 [debug] QUERY OK source="media_items" db=1.2ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode of Dessert Person, Claire Saffitz makes Pommes Anna, a classic French potato dish that’s as elegant as it is comforting. Using freshly dug potatoes from her garden, Claire layers thinly sliced potatoes with rosemary-infused butter, garlic, salt, and pepper, then bakes them until crisp and golden on the outside and tender inside.\n\nThis recipe is simple, refined, and ideal for the holidays - perfect alongside roast chicken, turkey, or any festive centerpiece. Claire shares her tips for even slicing, layering for the best texture, and how to unmold Pommes Anna beautifully for your table.\n\nIf you’re looking for a holiday side that feels both classic and special, this is it.\n\n#thanksgiving #potatorecipe #clairesaffitz #holiday \n\nChapters\n00:00 Intro\n01:31 Ingredients & Special Equipment\n02:25 Infuse the Butter & Prepare the Potatoes\n10:24 Cook & Bake\n11:26 Remove & Let Cool\n12:26 Serve\n14:26 Cat cam\n\nIngredients\n1 stick unsalted butter\n2 sprigs fresh rosemary\n2 garlic cloves, smashed and peeled\n3 lbs medium potatoes, peeled and held in room temperature tap water\nKosher salt\nFreshly ground black pepper\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz", "3ee750f9-67f0-4015-93f5-211c17e866f9", "ch3TBJkVkTY", false, 883, false, "https://www.youtube.com/watch?v=ch3TBJkVkTY", 16, "/downloads/shows/Claire Recreates/Season 2025/s2025e103000 - The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz.mkv", false, false, 9, [], 1, ~U[2025-10-30 14:01:10Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "In this episode of Dessert Person, Claire Saffitz makes Pommes Anna, a classic French potato dish that’s as elegant as it is comforting. Using freshly dug potatoes from her garden, Claire layers thinly sliced potatoes with rosemary-infused butter, garlic, salt, and pepper, then bakes them until crisp and golden on the outside and tender inside.\n\nThis recipe is simple, refined, and ideal for the holidays - perfect alongside roast chicken, turkey, or any festive centerpiece. Claire shares her tips for even slicing, layering for the best texture, and how to unmold Pommes Anna beautifully for your table.\n\nIf you’re looking for a holiday side that feels both classic and special, this is it.\n\n#thanksgiving #potatorecipe #clairesaffitz #holiday \n\nChapters\n00:00 Intro\n01:31 Ingredients & Special Equipment\n02:25 Infuse the Butter & Prepare the Potatoes\n10:24 Cook & Bake\n11:26 Remove & Let Cool\n12:26 Serve\n14:26 Cat cam\n\nIngredients\n1 stick unsalted butter\n2 sprigs fresh rosemary\n2 garlic cloves, smashed and peeled\n3 lbs medium potatoes, peeled and held in room temperature tap water\nKosher salt\nFreshly ground black pepper\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz", "ch3TBJkVkTY", 883, false, "https://www.youtube.com/watch?v=ch3TBJkVkTY", "/downloads/shows/Claire Recreates/Season 2025/s2025e103000 - The Potato Dish Everyone Will Ask About | Pommes Anna with Claire Saffitz.mkv", false, 9, ~U[2025-10-30 14:01:10Z]] 02:52:48.386 [debug] QUERY OK source="sources" db=0.1ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.386 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 15:00:32Z], 9] 02:52:48.389 [debug] QUERY OK source="media_items" db=1.5ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates\nIn this episode of Claire Recreates, Claire tackles a true lunchbox classic: the Little Debbie Honey Bun. Soft, sticky, sweet, and glazed, Honey Buns are one of the most iconic packaged pastries around and recreating them at home is a labor of love. Claire dives into what makes the original so nostalgic, from the enriched dough and spiraled shape to the signature sticky-sweet glaze.\n\nYou’ll watch as she mixes and proofs the dough, rolls and cuts each bun, then fries them to get that signature tender, slightly chewy texture. Once they’re golden, she finishes them with a warm honey glaze that melts into all the nooks and crannies, giving them that unmistakable glossy sheen.\n\nAlong the way, Claire shares tips for developing flavor in the dough, keeping the buns soft after frying, and getting the glaze just right. Whether you grew up eating Honey Buns on the go or just love seeing nostalgic snacks recreated from scratch, this episode is pure sticky-sweet comfort.\n\nStick around until the end to see how Claire’s homemade Honey Buns compare to the Little Debbie original, and whether she can truly match the iconic taste and look.\n\nSubscribe for more recreations of nostalgic snacks and comfort-food favorites, and let us know what Claire should take on next.\n\n#ClaireRecreates #HoneyBuns #LittleDebbie\n\nChapters\n00:00 Intro\n00:15 First impressions\n00:54 Smell test\n02:12 Taste test\n02:49 Reading the ingredients\n04:44 Measurements\n06:16 Game plan\n06:40 Dough Rise\n13:29 Form buns (swirl) Proof\n21:21 Frying Glazing\n27:24 Comparison\n30:17 Cat cam\n\nDOUGH\n¾ cup whole milk\n38g plus 368g all-purpose flour\n3 large eggs, chilled\n1½ tablespoons vegetable oil\n1½ tablespoons granulated sugar\n1½ tablespoons honey\n8 grams kosher salt\n1½ teaspoons instant yeast\n85g unsalted butter, cut into ½-inch pieces, chilled\nNeutral oil, for frying\n\nSWIRL\nWater + Cinnamon\n\nGLAZE\n½ cup whole milk\n2 tablespoons unsalted butter\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates", "3d8551e4-b813-44ef-a80a-f17010a1f0a9", "CViDoQkqf24", false, 1835, false, "https://www.youtube.com/watch?v=CViDoQkqf24", 17, "/downloads/shows/Claire Recreates/Season 2025/s2025e120400 - I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2025-12-04 15:00:32Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates\nIn this episode of Claire Recreates, Claire tackles a true lunchbox classic: the Little Debbie Honey Bun. Soft, sticky, sweet, and glazed, Honey Buns are one of the most iconic packaged pastries around and recreating them at home is a labor of love. Claire dives into what makes the original so nostalgic, from the enriched dough and spiraled shape to the signature sticky-sweet glaze.\n\nYou’ll watch as she mixes and proofs the dough, rolls and cuts each bun, then fries them to get that signature tender, slightly chewy texture. Once they’re golden, she finishes them with a warm honey glaze that melts into all the nooks and crannies, giving them that unmistakable glossy sheen.\n\nAlong the way, Claire shares tips for developing flavor in the dough, keeping the buns soft after frying, and getting the glaze just right. Whether you grew up eating Honey Buns on the go or just love seeing nostalgic snacks recreated from scratch, this episode is pure sticky-sweet comfort.\n\nStick around until the end to see how Claire’s homemade Honey Buns compare to the Little Debbie original, and whether she can truly match the iconic taste and look.\n\nSubscribe for more recreations of nostalgic snacks and comfort-food favorites, and let us know what Claire should take on next.\n\n#ClaireRecreates #HoneyBuns #LittleDebbie\n\nChapters\n00:00 Intro\n00:15 First impressions\n00:54 Smell test\n02:12 Taste test\n02:49 Reading the ingredients\n04:44 Measurements\n06:16 Game plan\n06:40 Dough Rise\n13:29 Form buns (swirl) Proof\n21:21 Frying Glazing\n27:24 Comparison\n30:17 Cat cam\n\nDOUGH\n¾ cup whole milk\n38g plus 368g all-purpose flour\n3 large eggs, chilled\n1½ tablespoons vegetable oil\n1½ tablespoons granulated sugar\n1½ tablespoons honey\n8 grams kosher salt\n1½ teaspoons instant yeast\n85g unsalted butter, cut into ½-inch pieces, chilled\nNeutral oil, for frying\n\nSWIRL\nWater + Cinnamon\n\nGLAZE\n½ cup whole milk\n2 tablespoons unsalted butter\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates", "CViDoQkqf24", 1835, false, "https://www.youtube.com/watch?v=CViDoQkqf24", "/downloads/shows/Claire Recreates/Season 2025/s2025e120400 - I Tried Making Homemade Little Debbie Honey Buns | Claire Recreates.mkv", false, 9, ~U[2025-12-04 15:00:32Z]] 02:52:48.389 [debug] QUERY OK source="sources" db=0.2ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.390 [debug] QUERY OK source="media_items" db=0.2ms idle=4.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-04 15:01:07Z], 9] 02:52:48.392 [debug] QUERY OK source="media_items" db=1.3ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Whoppers | Claire Recreates\nIn this episode of Claire Recreates, Claire takes on a movie-theater and candy-aisle classic: Whoppers. Crunchy, airy, deeply malty, and coated in milk chocolate, Whoppers seem simple, but recreating that unmistakable texture from scratch turns out to be a real technical puzzle.\n\nClaire starts by breaking down the heart of the candy: the light, crisp malted center. She builds it from an Italian meringue made with whipped egg whites and a cooked sugar syrup, then folds in a carefully balanced malt mixture made from malted milk powder, barley malt flour, milk, salt, and leavening. The mixture is cooked, aerated, portioned into tiny spheres, and baked until dry, hollow, and shatter-crisp inside.\n\nOnce the centers are just right, Claire moves on to the chocolate. She coats each malted ball in smooth milk chocolate, dialing in the thickness and snap so it eats like the real thing, no waxy shortcuts, no shortcuts at all.\n\nAlong the way, Claire dives into what gives Whoppers their signature flavor, why malt is so nostalgic, and how industrial candy achieves that ultra-light crunch. She shares tips on sugar stages, drying vs. baking, and how small changes can completely alter the final texture.\n\n#clairesaffitz #whoppers #chocolate \n\nChapters\n00:00 Intro\n01:31 First impressions\n01:57 Reading the ingredients\n02:52 Taste test\n03:44 Measurements\n04:36 Game plan\n04:45 How To Make Whoppers\n17:34 Coat in tempered milk chocolate\n21:23 Comparison\n24:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Whoppers | Claire Recreates", "3ca528f7-69bf-455f-a063-3210035d6322", "Zs8bGlrcYAo", false, 1458, false, "https://www.youtube.com/watch?v=Zs8bGlrcYAo", 18, "/downloads/shows/Claire Recreates/Season 2026/s2026e020400 - I Tried Making Homemade Whoppers | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-02-04 15:01:07Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Whoppers | Claire Recreates\nIn this episode of Claire Recreates, Claire takes on a movie-theater and candy-aisle classic: Whoppers. Crunchy, airy, deeply malty, and coated in milk chocolate, Whoppers seem simple, but recreating that unmistakable texture from scratch turns out to be a real technical puzzle.\n\nClaire starts by breaking down the heart of the candy: the light, crisp malted center. She builds it from an Italian meringue made with whipped egg whites and a cooked sugar syrup, then folds in a carefully balanced malt mixture made from malted milk powder, barley malt flour, milk, salt, and leavening. The mixture is cooked, aerated, portioned into tiny spheres, and baked until dry, hollow, and shatter-crisp inside.\n\nOnce the centers are just right, Claire moves on to the chocolate. She coats each malted ball in smooth milk chocolate, dialing in the thickness and snap so it eats like the real thing, no waxy shortcuts, no shortcuts at all.\n\nAlong the way, Claire dives into what gives Whoppers their signature flavor, why malt is so nostalgic, and how industrial candy achieves that ultra-light crunch. She shares tips on sugar stages, drying vs. baking, and how small changes can completely alter the final texture.\n\n#clairesaffitz #whoppers #chocolate \n\nChapters\n00:00 Intro\n01:31 First impressions\n01:57 Reading the ingredients\n02:52 Taste test\n03:44 Measurements\n04:36 Game plan\n04:45 How To Make Whoppers\n17:34 Coat in tempered milk chocolate\n21:23 Comparison\n24:01 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Whoppers | Claire Recreates", "Zs8bGlrcYAo", 1458, false, "https://www.youtube.com/watch?v=Zs8bGlrcYAo", "/downloads/shows/Claire Recreates/Season 2026/s2026e020400 - I Tried Making Homemade Whoppers | Claire Recreates.mkv", false, 9, ~U[2026-02-04 15:01:07Z]] 02:52:48.392 [debug] QUERY OK source="sources" db=0.1ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.393 [debug] QUERY OK source="media_items" db=0.3ms idle=4.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-16 14:00:13Z], 9] 02:52:48.394 [debug] QUERY OK source="media_items" db=1.0ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, Claire Saffitz explores the iconic beverage, Coca-Cola. She delves into the ingredients and process behind making this classic soda. Watch as she attempts to recreate the distinctive taste of coke, offering insights into its composition and how to make a version at home. This episode is a deep dive into the world of cola and food science.\n\n#clairesaffitz #cocacola #homemade \n\n00:00 Intro\n02:11 Reading the Coca Cola Ingredients\n02:21 Observations\n08:02 Game plan\n08:21 How To Make Caramel\n12:12 Tinker\n29:25 How To Make Seltzer\n30:08 Comparison\n33:48 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Coca Cola | Claire Recreates", "29010320-c35a-44b4-b83e-fed41a388871", "9f3ZO4N0RC8", false, 2046, false, "https://www.youtube.com/watch?v=9f3ZO4N0RC8", 19, "/downloads/shows/Claire Recreates/Season 2026/s2026e031600 - I Tried Making Homemade Coca Cola | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-03-16 14:00:13Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "In this video, Claire Saffitz explores the iconic beverage, Coca-Cola. She delves into the ingredients and process behind making this classic soda. Watch as she attempts to recreate the distinctive taste of coke, offering insights into its composition and how to make a version at home. This episode is a deep dive into the world of cola and food science.\n\n#clairesaffitz #cocacola #homemade \n\n00:00 Intro\n02:11 Reading the Coca Cola Ingredients\n02:21 Observations\n08:02 Game plan\n08:21 How To Make Caramel\n12:12 Tinker\n29:25 How To Make Seltzer\n30:08 Comparison\n33:48 Cat cam\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Coca Cola | Claire Recreates", "9f3ZO4N0RC8", 2046, false, "https://www.youtube.com/watch?v=9f3ZO4N0RC8", "/downloads/shows/Claire Recreates/Season 2026/s2026e031600 - I Tried Making Homemade Coca Cola | Claire Recreates.mkv", false, 9, ~U[2026-03-16 14:00:13Z]] 02:52:48.395 [debug] QUERY OK source="sources" db=0.4ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.396 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=3.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-21 14:00:09Z], 9] 02:52:48.402 [debug] QUERY OK source="media_items" db=5.2ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Nutty Buddy Bars | Claire Recreates\nNutty Buddy Bars are one of those nostalgic snacks that somehow manage to be crispy, creamy, chocolatey, and peanut buttery all at once. First introduced in the 1960s, the iconic wafer bars became a lunchbox staple thanks to their delicate layers of crunchy wafers, peanut butter filling, and chocolate coating.\n\nIn this episode of Claire Recreates, Claire Saffitz takes on the fan-favorite classic completely from scratch. She breaks down every layer that makes Nutty Buddies so addictive: ultra-thin crisp wafers, a deeply roasted peanut butter filling, and a snappy chocolate coating that brings everything together. Along the way, she explores what makes the original so satisfying while showing how homemade ingredients can elevate the flavor and texture into something even better.\n\nWhether you grew up unwrapping these after school or you’re discovering them for the first time, Claire’s homemade version captures all the nostalgia of the original with richer chocolate, more intense peanut flavor, and that signature crunch in every bite.\n\n#chocolate #snacks #clairesaffitz \n\nChapters:\n\n00:00 Intro\n00:19 Nutty Buddy\n01:12 Taste test\n01:52 Reading the ingredients\n03:23 Measurements\n04:10 Make and cook wafers\n07:04 Peanut butter filling\n17:28 Assembly (shaping)\n18:39 Chocolate coating\n21:21 Comparison\n24:26 Cat cam\n\nIngredients:\n\nPeanut Filling\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nWafers\n1 cup cake flour\n½ cup cornstarch\n⅓ cup powdered sugar\n1½ tsp. baking powder\n½ tsp. salt \n½ cup unsalted butter, melted and cooled\n¾ cup water\n2 teaspoons vanilla extract\n\nChocolate\n12 oz. milk chocolate \n 3 oz. Finely chopped milk chocolate\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Nutty Buddy Bars | Claire Recreates", "6c530fcc-7e94-45fa-81c3-05dfc2a36a33", "LYWuBHBdDbk", false, 1483, false, "https://www.youtube.com/watch?v=LYWuBHBdDbk", 20, "/downloads/shows/Claire Recreates/Season 2026/s2026e052100 - I Tried Making Homemade Nutty Buddy Bars | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-05-21 14:00:09Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Nutty Buddy Bars | Claire Recreates\nNutty Buddy Bars are one of those nostalgic snacks that somehow manage to be crispy, creamy, chocolatey, and peanut buttery all at once. First introduced in the 1960s, the iconic wafer bars became a lunchbox staple thanks to their delicate layers of crunchy wafers, peanut butter filling, and chocolate coating.\n\nIn this episode of Claire Recreates, Claire Saffitz takes on the fan-favorite classic completely from scratch. She breaks down every layer that makes Nutty Buddies so addictive: ultra-thin crisp wafers, a deeply roasted peanut butter filling, and a snappy chocolate coating that brings everything together. Along the way, she explores what makes the original so satisfying while showing how homemade ingredients can elevate the flavor and texture into something even better.\n\nWhether you grew up unwrapping these after school or you’re discovering them for the first time, Claire’s homemade version captures all the nostalgia of the original with richer chocolate, more intense peanut flavor, and that signature crunch in every bite.\n\n#chocolate #snacks #clairesaffitz \n\nChapters:\n\n00:00 Intro\n00:19 Nutty Buddy\n01:12 Taste test\n01:52 Reading the ingredients\n03:23 Measurements\n04:10 Make and cook wafers\n07:04 Peanut butter filling\n17:28 Assembly (shaping)\n18:39 Chocolate coating\n21:21 Comparison\n24:26 Cat cam\n\nIngredients:\n\nPeanut Filling\n1 cup smooth natural peanut butter \n½ tsp. vanilla extract \nKosher salt\n¼ cup sugar\n3 tablespoons corn syrup\n1 tablespoon honey \n2 tablespoons butter \n\nWafers\n1 cup cake flour\n½ cup cornstarch\n⅓ cup powdered sugar\n1½ tsp. baking powder\n½ tsp. salt \n½ cup unsalted butter, melted and cooled\n¾ cup water\n2 teaspoons vanilla extract\n\nChocolate\n12 oz. milk chocolate \n 3 oz. Finely chopped milk chocolate\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Nutty Buddy Bars | Claire Recreates", "LYWuBHBdDbk", 1483, false, "https://www.youtube.com/watch?v=LYWuBHBdDbk", "/downloads/shows/Claire Recreates/Season 2026/s2026e052100 - I Tried Making Homemade Nutty Buddy Bars | Claire Recreates.mkv", false, 9, ~U[2026-05-21 14:00:09Z]] 02:52:48.403 [debug] QUERY OK source="sources" db=0.4ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.403 [debug] QUERY OK source="media_items" db=0.2ms idle=8.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-19 12:00:26Z], 9] 02:52:48.406 [debug] QUERY OK source="media_items" db=1.7ms idle=8.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Star Crunch Cookies | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on the legendary Star Crunch cookie... a chewy, caramel-filled, chocolate-coated classic packed with crispy rice. From homemade caramel to perfectly balanced chocolate flavor and texture, Claire breaks down every component to see if a from-scratch version can capture the nostalgia of the original.\n\nWill the homemade version outshine the convenience store favorite? Watch and find out.\n\n#ClaireSaffitz #ClaireRecreates #StarCrunch #DessertPerson\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n(¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1 ¼ cup all-purpose flour\n1 tablespoon cocoa powder\n1½ teaspoons baking soda\n1 teaspoon kosher salt\n½ turmeric\n8 tablespoons unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nCARAMEL LAYER\n1 cups/400 grams granulated sugar\n¼ cup/85 grams light corn syrup\n2 tablespoons/57 grams unsalted butter, cut into ½-inch pieces\n3/4 cups/360 grams heavy cream, heated and kept warm\n1 teaspoon kosher salt (such as Diamond Crystal)\n\n00:00 Intro\n00:25 First impressions of StarCrunch\n03:55 StarCrunch Analysis\n05:00 Measurements\n05:26 Game plan\n05:37 How To Make Puffed Rice\n08:51 How To Make Cookies\n29:34 Fry rice\n31:54 How To Make Caramel\n34:51 Coat cookies in caramel + puffed rice\n36:56 How To Make Chocolate\n41:06 Comparison\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Star Crunch Cookies | Claire Recreates", "fd292423-47c9-4c76-b05c-fa7fd8e3fe0a", "bfGL-DG29-E", false, 2660, false, "https://www.youtube.com/watch?v=bfGL-DG29-E", 21, "/downloads/shows/Claire Recreates/Season 2026/s2026e061900 - I Tried Making Homemade Star Crunch Cookies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-06-19 12:00:26Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Star Crunch Cookies | Claire Recreates\nIn this episode of Claire Recreates, Claire Saffitz takes on the legendary Star Crunch cookie... a chewy, caramel-filled, chocolate-coated classic packed with crispy rice. From homemade caramel to perfectly balanced chocolate flavor and texture, Claire breaks down every component to see if a from-scratch version can capture the nostalgia of the original.\n\nWill the homemade version outshine the convenience store favorite? Watch and find out.\n\n#ClaireSaffitz #ClaireRecreates #StarCrunch #DessertPerson\n\nCOOKIES\n1¼ cups old-fashioned rolled oats, divided\n¼ cup raisins\n½ cup whole milk\n¼ cup water \n(¼ cup oats + raisins cooked in milk/water, remaining 1 cup oats processed w/ dry ingredients)\n1 ¼ cup all-purpose flour\n1 tablespoon cocoa powder\n1½ teaspoons baking soda\n1 teaspoon kosher salt\n½ turmeric\n8 tablespoons unsalted butter, at room temperature\n¼ cup vegetable oil\n1 cup light brown sugar (packed)\n⅓ cup molasses\n1 large egg\n2 teaspoons pure vanilla extract\n\nCARAMEL LAYER\n1 cups/400 grams granulated sugar\n¼ cup/85 grams light corn syrup\n2 tablespoons/57 grams unsalted butter, cut into ½-inch pieces\n3/4 cups/360 grams heavy cream, heated and kept warm\n1 teaspoon kosher salt (such as Diamond Crystal)\n\n00:00 Intro\n00:25 First impressions of StarCrunch\n03:55 StarCrunch Analysis\n05:00 Measurements\n05:26 Game plan\n05:37 How To Make Puffed Rice\n08:51 How To Make Cookies\n29:34 Fry rice\n31:54 How To Make Caramel\n34:51 Coat cookies in caramel + puffed rice\n36:56 How To Make Chocolate\n41:06 Comparison\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h…\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Star Crunch Cookies | Claire Recreates", "bfGL-DG29-E", 2660, false, "https://www.youtube.com/watch?v=bfGL-DG29-E", "/downloads/shows/Claire Recreates/Season 2026/s2026e061900 - I Tried Making Homemade Star Crunch Cookies | Claire Recreates.mkv", false, 9, ~U[2026-06-19 12:00:26Z]] 02:52:48.406 [debug] QUERY OK source="sources" db=0.2ms idle=9.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.407 [debug] QUERY OK source="media_items" db=0.3ms idle=4.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-03 14:00:10Z], 9] 02:52:48.429 [debug] QUERY OK source="media_items" db=21.4ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Hostess Fruit Pies | Claire Recreates\nClaire Saffitz takes on a childhood classic: Hostess Fruit Pies. In this episode of Claire Recreates, Claire makes homemade versions of the iconic glazed hand pies from scratch, with two fillings: fresh Pink Lady apple and sour cherry.\n\nThe goal sounds simple enough: flaky pie dough, fruit filling, and that signature crackly glaze. But recreating a packaged fruit pie at home means figuring out everything from the texture of the crust to how much actual fruit the filling can handle before it stops tasting like the original.\n\nFor the apple pie, Claire starts with fresh Pink Lady apples, looking for the right balance of sweetness, acidity, and that familiar gooey fruit-pie texture. Then she turns to sour cherries for a homemade cherry filling that’s bright, tart, and deeply cherry-forward.\n\nClaire Recreates Hostess Fruit Pies from scratch.\n\n#ClaireSaffitz #ClaireRecreates #HostessFruitPies\n\nChapters:\n00:00 Intro\n01:18 How To Make Hostess Fruit Pies\n03:15 Reading the ingredients\n04:30 Measurements\n04:50 How To Make Pastry\n05:23 How To Make Filling\n10:49 Assemble & bake\n16:38 Glaze\n17:48 Comparison\n\nAll Purpose Flaky Pastry Dough\n3 cups all-purpose flour, plus more for rolling\n2 tablespoons sugar\n2 teaspoons Diamond Crystal kosher salt or 1 teaspoon Morton\n2.5 sticks unsalted butter\n1/4 teaspoon baking powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Hostess Fruit Pies | Claire Recreates", "ef4a2599-24db-44d9-9951-686a9ae6fdd5", "ZpjIqe1si-U", false, 1190, false, "https://www.youtube.com/watch?v=ZpjIqe1si-U", 22, "/downloads/shows/Claire Recreates/Season 2026/s2026e090300 - I Tried Making Homemade Hostess Fruit Pies | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-09-03 14:00:10Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Hostess Fruit Pies | Claire Recreates\nClaire Saffitz takes on a childhood classic: Hostess Fruit Pies. In this episode of Claire Recreates, Claire makes homemade versions of the iconic glazed hand pies from scratch, with two fillings: fresh Pink Lady apple and sour cherry.\n\nThe goal sounds simple enough: flaky pie dough, fruit filling, and that signature crackly glaze. But recreating a packaged fruit pie at home means figuring out everything from the texture of the crust to how much actual fruit the filling can handle before it stops tasting like the original.\n\nFor the apple pie, Claire starts with fresh Pink Lady apples, looking for the right balance of sweetness, acidity, and that familiar gooey fruit-pie texture. Then she turns to sour cherries for a homemade cherry filling that’s bright, tart, and deeply cherry-forward.\n\nClaire Recreates Hostess Fruit Pies from scratch.\n\n#ClaireSaffitz #ClaireRecreates #HostessFruitPies\n\nChapters:\n00:00 Intro\n01:18 How To Make Hostess Fruit Pies\n03:15 Reading the ingredients\n04:30 Measurements\n04:50 How To Make Pastry\n05:23 How To Make Filling\n10:49 Assemble & bake\n16:38 Glaze\n17:48 Comparison\n\nAll Purpose Flaky Pastry Dough\n3 cups all-purpose flour, plus more for rolling\n2 tablespoons sugar\n2 teaspoons Diamond Crystal kosher salt or 1 teaspoon Morton\n2.5 sticks unsalted butter\n1/4 teaspoon baking powder\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Hostess Fruit Pies | Claire Recreates", "ZpjIqe1si-U", 1190, false, "https://www.youtube.com/watch?v=ZpjIqe1si-U", "/downloads/shows/Claire Recreates/Season 2026/s2026e090300 - I Tried Making Homemade Hostess Fruit Pies | Claire Recreates.mkv", false, 9, ~U[2026-09-03 14:00:10Z]] 02:52:48.430 [debug] QUERY OK source="sources" db=0.2ms idle=25.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 02:52:48.430 [debug] QUERY OK source="media_items" db=0.2ms idle=24.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-24 14:00:19Z], 9] 02:52:48.438 [debug] QUERY OK source="media_items" db=6.8ms idle=24.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I Tried Making Homemade Choco Boy | Claire Recreates\nClaire Saffitz is back with another Claire Recreates, and this time she’s taking on Choco Boy, the beloved Korean snack made with crunchy mushroom-shaped biscuits and chocolate caps.\n\nThe goal sounds simple: recreate Choco Boy from scratch. But getting that tiny biscuit stem, signature mushroom shape, crisp texture, and chocolate top just right is another story.\n\nClaire breaks down the original Choco Boy, experiments with her own homemade version, and tries to get as close as possible to the snack that so many people grew up eating.\n\nCan she recreate Choco Boy at home? Watch to find out.\n\n#ClaireSaffitz #ClaireRecreates #ChocoBoy #KoreanSnacks\n\nBiscuit:\n1¼ cups/160 grams all-purpose flour\n1 tablespoon cornstarch\n2 tablespoons granulated sugar\n½ teaspoon baking powder\n¼ teaspoon kosher salt\n¼ cup/55 grams cold unsalted butter (½ stick), cut into pieces\n2 tablespoons whole milk\n1 tablespoon beaten egg white\n¼ teaspoon vanilla extract\n\n350g Milk Chocolate\n\n\nChapters\n00:00 Intro\n01:12 Reading the ingredients\n02:17 Measurements\n02:51 Game plan\n03:03 Make molds\n05:45 Biscuit dough and baking\n10:12 More molds\n15:40 Chocolate tempering + assembly\n20:22 Comparison\n\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Choco Boy | Claire Recreates", "f667899e-4794-4c57-9efd-27788e5a2b0d", "6tOb932__kI", false, 1404, false, "https://www.youtube.com/watch?v=6tOb932__kI", 23, "/downloads/shows/Claire Recreates/Season 2026/s2026e092400 - I Tried Making Homemade Choco Boy | Claire Recreates.mkv", false, false, 9, [], 1, ~U[2026-09-24 14:00:19Z], ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], "I Tried Making Homemade Choco Boy | Claire Recreates\nClaire Saffitz is back with another Claire Recreates, and this time she’s taking on Choco Boy, the beloved Korean snack made with crunchy mushroom-shaped biscuits and chocolate caps.\n\nThe goal sounds simple: recreate Choco Boy from scratch. But getting that tiny biscuit stem, signature mushroom shape, crisp texture, and chocolate top just right is another story.\n\nClaire breaks down the original Choco Boy, experiments with her own homemade version, and tries to get as close as possible to the snack that so many people grew up eating.\n\nCan she recreate Choco Boy at home? Watch to find out.\n\n#ClaireSaffitz #ClaireRecreates #ChocoBoy #KoreanSnacks\n\nBiscuit:\n1¼ cups/160 grams all-purpose flour\n1 tablespoon cornstarch\n2 tablespoons granulated sugar\n½ teaspoon baking powder\n¼ teaspoon kosher salt\n¼ cup/55 grams cold unsalted butter (½ stick), cut into pieces\n2 tablespoons whole milk\n1 tablespoon beaten egg white\n¼ teaspoon vanilla extract\n\n350g Milk Chocolate\n\n\nChapters\n00:00 Intro\n01:12 Reading the ingredients\n02:17 Measurements\n02:51 Game plan\n03:03 Make molds\n05:45 Biscuit dough and baking\n10:12 More molds\n15:40 Chocolate tempering + assembly\n20:22 Comparison\n\n\n\nWhat's for Dessert by Claire Saffitz is out now: https://geni.us/WjcIbfp\nDessert Person Online: https://www.dessertperson.com/\nClaire on Instagram: https://www.instagram.com/csaffitz/?h...\nClaire Merchandise: https://www.dessertperson.com/buystuff\nPenguin Random House Books: https://www.penguinrandomhouse.com/\n\nVideo Series:\nProducer/Director: Vincent Cross \nCamera Operator: Calvin Robertson\nEditor/Motion Graphics: Hal McFall\n\nAnimation Credits:\nCharacter Designer/Animator/Backgrounds: Jack Sherry\nCharacter Rigger: Johara Dutton", "I Tried Making Homemade Choco Boy | Claire Recreates", "6tOb932__kI", 1404, false, "https://www.youtube.com/watch?v=6tOb932__kI", "/downloads/shows/Claire Recreates/Season 2026/s2026e092400 - I Tried Making Homemade Choco Boy | Claire Recreates.mkv", false, 9, ~U[2026-09-24 14:00:19Z]] 02:52:48.438 [debug] QUERY OK source="sources" db=0.1ms idle=31.1ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z], 9] 02:52:48.439 [debug] QUERY OK source="media_items" db=0.4ms idle=9.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [9] 02:52:48.440 [debug] QUERY OK source="media_items" db=0.3ms idle=9.5ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [9] 02:52:48.440 [debug] QUERY OK source="media_items" db=0.1ms idle=9.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [9] 02:52:48.441 [debug] QUERY OK source="tasks" db=0.1ms idle=2.1ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [6580, 9, ~U[2026-10-17 00:52:48Z], ~U[2026-10-17 00:52:48Z]] 02:52:48.442 [info] {"args":{"id":9},"id":6578,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":43240412,"event":"job:stop","queue_time":155635,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 02:52:59.888 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:53:00.494 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:53:29.889 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:53:59.890 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:54:00.495 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:54:29.891 [info] {"source":"oban","duration":783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:54:59.892 [info] {"source":"oban","duration":767,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:55:00.496 [info] {"source":"oban","duration":221,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:55:29.893 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:55:59.894 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:56:00.497 [info] {"source":"oban","duration":142,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:56:29.895 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:56:59.896 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:57:00.498 [info] {"source":"oban","duration":211,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:57:29.897 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:57:59.898 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:58:00.499 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:58:29.899 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:58:59.900 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:59:00.500 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:59:29.901 [info] {"source":"oban","duration":620,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:59:59.902 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:00:00.510 [info] {"source":"oban","duration":7473,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[6581]} 03:00:00.518 [info] {"args":{},"id":6581,"meta":{"cron":true,"cron_expr":"0 1 * * *","cron_tz":"Etc/UTC"},"system_time":1792198800517710311,"max_attempts":20,"queue":"local_data","worker":"Pinchflat.Downloading.MediaRetentionWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","local_data"]} 03:00:00.522 [debug] QUERY OK source="media_items" db=3.8ms idle=752.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" WHERE ((NOT (m0."media_filepath" IS NULL) AND IFNULL(retention_period_days, 0) > 0 AND DATETIME(media_downloaded_at, '+' || retention_period_days || ' day') < DATETIME('now') ) AND NOT (m0."prevent_culling" = 1)) [] 03:00:00.522 [info] Culling 0 media items past their retention date 03:00:00.526 [debug] QUERY OK source="media_items" db=3.4ms queue=0.1ms idle=757.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" WHERE ((NOT (m0."media_filepath" IS NULL) AND NOT ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND NOT (m0."prevent_culling" = 1)) [] 03:00:00.526 [info] Deleting 0 media items that are from before the source cutoff 03:00:00.527 [info] {"args":{},"id":6581,"meta":{"cron":true,"cron_expr":"0 1 * * *","cron_tz":"Etc/UTC"},"state":"success","max_attempts":20,"queue":"local_data","worker":"Pinchflat.Downloading.MediaRetentionWorker","source":"oban","duration":8962,"event":"job:stop","queue_time":515931,"attempt":1,"tags":["media_item","local_data"]} 03:00:29.903 [info] {"source":"oban","duration":758,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:00:59.904 [info] {"source":"oban","duration":581,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:01:00.511 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:01:29.905 [info] {"source":"oban","duration":616,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:01:59.906 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:02:00.512 [info] {"source":"oban","duration":225,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:02:29.907 [info] {"source":"oban","duration":602,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:02:59.908 [info] {"source":"oban","duration":748,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:03:00.513 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:03:29.909 [info] {"source":"oban","duration":777,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:03:59.910 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:04:00.514 [info] {"source":"oban","duration":224,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:04:29.911 [info] {"source":"oban","duration":774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:04:59.912 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:05:00.515 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:05:29.913 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:05:59.914 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:06:00.516 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:06:29.915 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:06:59.916 [info] {"source":"oban","duration":838,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:07:00.517 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:07:29.918 [info] {"source":"oban","duration":863,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:07:59.920 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:08:00.518 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:08:29.921 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:08:59.922 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:09:00.519 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:09:29.923 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:09:59.924 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:10:00.520 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:10:29.925 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:10:59.926 [info] {"source":"oban","duration":774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:11:00.521 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:11:29.927 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:11:59.928 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:12:00.522 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:12:29.929 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:12:59.930 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:13:00.523 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:13:29.931 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:13:59.932 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:14:00.524 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:14:29.933 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:14:59.934 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:15:00.525 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:15:29.935 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:15:59.936 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:16:00.526 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:16:29.937 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:16:59.955 [info] {"source":"oban","duration":15177,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:17:00.527 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:17:29.957 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:17:59.958 [info] {"source":"oban","duration":565,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:18:00.528 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:18:29.959 [info] {"source":"oban","duration":494,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:18:59.960 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:19:00.529 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:19:29.961 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:19:59.962 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:20:00.530 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:20:29.963 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:20:59.964 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:21:00.531 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:21:29.965 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:21:59.966 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:22:00.532 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:22:29.967 [info] {"source":"oban","duration":742,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:22:59.968 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:23:00.533 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:23:29.969 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:23:59.970 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:24:00.534 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:24:29.971 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:24:59.972 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:25:00.535 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:25:29.973 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:25:59.974 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:26:00.536 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:26:29.975 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:26:59.976 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:27:00.537 [info] {"source":"oban","duration":171,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:27:29.977 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:27:59.978 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:28:00.538 [info] {"source":"oban","duration":117,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:28:29.979 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:28:59.980 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:29:00.539 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:29:29.981 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:29:59.982 [info] {"source":"oban","duration":813,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:30:00.540 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:30:29.983 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:30:59.984 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:31:00.541 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:31:29.985 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:31:59.986 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:32:00.542 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:32:29.987 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:32:59.988 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:33:00.543 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:33:29.989 [info] {"source":"oban","duration":808,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:33:59.991 [info] {"source":"oban","duration":834,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:34:00.544 [info] {"source":"oban","duration":250,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:34:29.993 [info] {"source":"oban","duration":471,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:34:59.994 [info] {"source":"oban","duration":467,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:35:00.545 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:35:29.995 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:35:59.996 [info] {"source":"oban","duration":768,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:36:00.546 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:36:29.997 [info] {"source":"oban","duration":646,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:36:59.998 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:37:00.547 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:37:29.999 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:38:00.000 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:38:00.548 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:38:30.001 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:39:00.002 [info] {"source":"oban","duration":777,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:39:00.549 [info] {"source":"oban","duration":238,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:39:30.003 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:40:00.004 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:40:00.550 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:40:30.005 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:41:00.006 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:41:00.551 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:41:30.007 [info] {"source":"oban","duration":744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:42:00.008 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:42:00.552 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:42:30.009 [info] {"source":"oban","duration":790,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:43:00.010 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:43:00.553 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:43:30.011 [info] {"source":"oban","duration":822,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:44:00.012 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:44:00.554 [info] {"source":"oban","duration":130,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:44:30.013 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:45:00.014 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:45:00.555 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:45:30.015 [info] {"source":"oban","duration":778,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:46:00.016 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:46:00.556 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:46:30.017 [info] {"source":"oban","duration":773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:47:00.018 [info] {"source":"oban","duration":898,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:47:00.557 [info] {"source":"oban","duration":254,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:47:30.020 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:48:00.021 [info] {"source":"oban","duration":784,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:48:00.558 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:48:30.022 [info] {"source":"oban","duration":636,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:49:00.023 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:49:00.559 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:49:30.024 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:50:00.026 [info] {"source":"oban","duration":2060,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:50:00.560 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:50:30.028 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:51:00.029 [info] {"source":"oban","duration":762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:51:00.561 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:51:30.030 [info] {"source":"oban","duration":561,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:52:00.031 [info] {"source":"oban","duration":901,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:52:00.562 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:52:21.637 [info] GET /sitemap.xml 03:52:21.638 [debug] QUERY OK source="settings" db=0.3ms idle=1846.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 03:52:21.639 [debug] QUERY OK source="settings" db=0.1ms idle=1847.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 03:52:21.639 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 03:52:21.639 [error] #PID<0.553314.0> running PinchflatWeb.Endpoint (connection #PID<0.553312.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553312.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37418}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bba9d92d5322ce-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.553314.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bba9d92d5322ce-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8uK6EXpUkM9RcAQZkh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553312.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37418}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bba9d92d5322ce-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553312.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37418}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bba9d92d5322ce-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.553314.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 03:52:30.033 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:53:00.035 [info] {"source":"oban","duration":2033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:53:00.563 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:53:30.037 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:54:00.039 [info] {"source":"oban","duration":1716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:54:00.564 [info] {"source":"oban","duration":220,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:54:30.041 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:55:00.043 [info] {"source":"oban","duration":1416,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:55:00.565 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:55:30.044 [info] {"source":"oban","duration":733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:56:00.045 [info] {"source":"oban","duration":1254,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:56:00.566 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:56:30.047 [info] {"source":"oban","duration":785,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:57:00.048 [info] {"source":"oban","duration":888,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:57:00.567 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:57:30.050 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:58:00.051 [info] {"source":"oban","duration":794,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:58:00.568 [info] {"source":"oban","duration":159,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:58:30.052 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:59:00.053 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 03:59:00.569 [info] {"source":"oban","duration":122,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 03:59:30.054 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:00:00.057 [info] {"source":"oban","duration":2355,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:00:00.573 [info] {"source":"oban","duration":2919,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[6582]} 04:00:00.580 [info] {"args":{},"id":6582,"meta":{"cron":true,"cron_expr":"0 2 * * *","cron_tz":"Etc/UTC"},"system_time":1792202400580448643,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaQualityUpgradeWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 04:00:00.584 [debug] QUERY OK source="media_items" db=3.3ms idle=777.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((NOT (m0."media_filepath" IS NULL) AND NOT (m0."prevent_download" = 1)) AND NOT (NOT (m0."media_redownloaded_at" IS NULL))) AND IFNULL(redownload_delay_days, 0) > 0 AND DATE('now', '-' || redownload_delay_days || ' day') > DATE(uploaded_at) AND DATE(media_downloaded_at, '-' || redownload_delay_days || ' day') < DATE(uploaded_at) ) [] 04:00:00.584 [info] Redownloading 2 media items 04:00:00.586 [debug] QUERY OK source="tasks" db=0.1ms idle=13.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [6583, 256067, ~U[2026-10-17 02:00:00Z], ~U[2026-10-17 02:00:00Z]] 04:00:00.588 [debug] QUERY OK source="tasks" db=0.2ms idle=2.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [6584, 256408, ~U[2026-10-17 02:00:00Z], ~U[2026-10-17 02:00:00Z]] 04:00:00.589 [info] {"args":{},"id":6582,"meta":{"cron":true,"cron_expr":"0 2 * * *","cron_tz":"Etc/UTC"},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaQualityUpgradeWorker","source":"oban","duration":8561,"event":"job:stop","queue_time":579539,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 04:00:00.593 [info] {"args":{"id":256067,"quality_upgrade?":true},"id":6583,"meta":{},"system_time":1792202400593504976,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 04:00:00.593 [info] {"args":{"id":256408,"quality_upgrade?":true},"id":6584,"meta":{},"system_time":1792202400593561498,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 04:00:00.594 [debug] QUERY OK source="media_items" db=0.5ms idle=5.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [256408] 04:00:00.594 [debug] QUERY OK source="media_items" db=0.8ms idle=6.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [256067] 04:00:00.595 [info] User scripts lifecyle file either not present or is empty. Skipping. 04:00:00.595 [info] User scripts lifecyle file either not present or is empty. Skipping. 04:00:00.596 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 04:00:00.598 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 04:00:00.601 [debug] QUERY OK source="media_metadata" db=1.1ms idle=5.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [256067] 04:00:00.601 [debug] QUERY OK source="media_metadata" db=0.8ms idle=5.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [256408] 04:00:00.601 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 04:00:00.602 [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 [] 04:00:00.602 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.4ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 04:00:00.603 [debug] QUERY OK source="settings" db=0.2ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:00.603 [debug] Running yt-dlp command for action: get_downloadable_status 04:00:00.604 [debug] QUERY OK source="settings" db=0.5ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:00.604 [debug] QUERY OK source="settings" db=0.4ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:00.605 [debug] QUERY OK source="settings" db=0.7ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:00.605 [debug] Running yt-dlp command for action: get_downloadable_status 04:00:00.605 [debug] QUERY OK source="settings" db=0.9ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:00.606 [debug] QUERY OK source="settings" db=0.5ms 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 [] 04:00:00.606 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=pmADTgizr_4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7d/c4/7dc45e0617c17623eb363f33edf5488a23e224c65c97397812bc6d54ffe8a4f9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 04:00:00.608 [debug] QUERY OK source="settings" db=1.5ms 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 [] 04:00:00.609 [debug] QUERY OK source="settings" db=0.5ms 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 [] 04:00:00.609 [debug] QUERY OK source="settings" db=0.3ms 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 [] 04:00:00.610 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DGyRdwOrTqY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1e/69/1e69dd5a6558e345e36da64510360142109aa60a5b68833981f5e767ac466323.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 04:00:03.717 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=pmADTgizr_4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7d/c4/7dc45e0617c17623eb363f33edf5488a23e224c65c97397812bc6d54ffe8a4f9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 04:00:03.718 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DGyRdwOrTqY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1e/69/1e69dd5a6558e345e36da64510360142109aa60a5b68833981f5e767ac466323.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 04:00:03.719 [debug] Running yt-dlp command for action: download 04:00:03.719 [debug] Running yt-dlp command for action: download 04:00:03.720 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=1916.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:03.720 [debug] QUERY OK source="settings" db=0.6ms idle=1916.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:03.721 [debug] QUERY OK source="settings" db=0.7ms queue=0.3ms idle=1916.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:03.722 [debug] QUERY OK source="settings" db=0.7ms idle=1116.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:03.722 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=113.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:03.723 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=pmADTgizr_4 --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-subs --convert-subs srt --embed-subs --sub-langs en --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99 - %(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,interaction --output /downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99 - %(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/53/4d/534d713d3c6f265716946ed2bc7284beab9bc76c6f9b1941e132250f2cc90955.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 04:00:03.723 [debug] QUERY OK source="settings" db=1.4ms queue=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:03.724 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DGyRdwOrTqY --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-subs --convert-subs srt --embed-subs --sub-langs en --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/shows/Livet på gården/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,interaction --output /downloads/shows/Livet på gården/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/da/cc/dacc0a65b352665da155f237a619174991555481386b0091d7df7d88182ff3b5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 04:00:19.571 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=pmADTgizr_4 --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-subs --convert-subs srt --embed-subs --sub-langs en --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99 - %(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,interaction --output /downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99 - %(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/53/4d/534d713d3c6f265716946ed2bc7284beab9bc76c6f9b1941e132250f2cc90955.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 04:00:19.619 [debug] Running yt-dlp command for action: download_thumbnail 04:00:19.621 [debug] QUERY OK source="settings" db=0.1ms idle=978.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:19.623 [debug] QUERY OK source="settings" db=1.5ms idle=815.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:19.623 [debug] QUERY OK source="settings" db=0.3ms idle=817.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:19.623 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=pmADTgizr_4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/256067/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/41/7e/417e562615583e09d36dc486cf88c6f8d869b730466a3e503439fd32b0a9be8c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 04:00:22.875 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=pmADTgizr_4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/256067/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/41/7e/417e562615583e09d36dc486cf88c6f8d869b730466a3e503439fd32b0a9be8c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 04:00:22.877 [debug] QUERY OK source="media_items" db=1.8ms idle=224.3ms UPDATE "media_items" SET "media_filepath" = ?, "duration_seconds" = ?, "media_downloaded_at" = ?, "nfo_filepath" = ?, "predicted_media_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? ["/downloads/shows/TechLinked/Season 2026/s2026e101599 - Who is this even for?.mp4", 434, ~U[2026-10-17 02:00:19Z], "/downloads/shows/TechLinked/Season 2026/s2026e101599 - Who is this even for?.nfo", "/downloads/shows/TechLinked/Season 2026/s2026e101599 - Who is this even for?.mkv", "/downloads/shows/TechLinked/Season 2026/s2026e101599 - Who is this even for?-thumb.jpg", ~U[2026-10-17 02:00:22Z], 256067] 04:00:22.881 [debug] QUERY OK source="media_items" db=3.1ms idle=72.5ms UPDATE "media_items" SET "media_redownloaded_at" = ?, "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-10-17 02:00:22Z], 196877663, ~U[2026-10-17 02:00:22Z], 256067] 04:00:22.885 [info] User scripts lifecyle file either not present or is empty. Skipping. 04:00:22.885 [info] {"args":{"id":256067,"quality_upgrade?":true},"id":6583,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":22291648,"event":"job:stop","queue_time":592555,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 04:00:30.058 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:00:47.598 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DGyRdwOrTqY --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-subs --convert-subs srt --embed-subs --sub-langs en --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/shows/Livet på gården/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,interaction --output /downloads/shows/Livet på gården/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/da/cc/dacc0a65b352665da155f237a619174991555481386b0091d7df7d88182ff3b5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: WARNING: Replacing existing file "/downloads/shows/Livet på gården/Season 2026/s2026e101500 - Min søsters første arbejdsdag og ny kæmpe hønsegård | Livet på gården Ep. 107-thumb.jpg" 04:00:47.646 [debug] Running yt-dlp command for action: download_thumbnail 04:00:47.647 [debug] QUERY OK source="settings" db=0.2ms idle=1841.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:47.647 [debug] QUERY OK source="settings" db=0.1ms idle=957.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:47.647 [debug] QUERY OK source="settings" db=0.2ms idle=842.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:00:47.648 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DGyRdwOrTqY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/256408/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/ea/42/ea42a9d1896b2f9d65524f3e612b00e9c2a3bd5eb69810418a681005eeb84388.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 04:00:50.801 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DGyRdwOrTqY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/256408/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/ea/42/ea42a9d1896b2f9d65524f3e612b00e9c2a3bd5eb69810418a681005eeb84388.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 04:00:50.802 [debug] QUERY OK source="media_items" db=1.2ms idle=1995.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-10-17 02:00:47Z], ~U[2026-10-17 02:00:50Z], 256408] 04:00:50.803 [debug] QUERY OK source="media_items" db=0.7ms idle=1997.4ms UPDATE "media_items" SET "media_redownloaded_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-10-17 02:00:50Z], ~U[2026-10-17 02:00:50Z], 256408] 04:00:50.803 [info] User scripts lifecyle file either not present or is empty. Skipping. 04:00:50.804 [info] {"args":{"id":256408,"quality_upgrade?":true},"id":6584,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":50210439,"event":"job:stop","queue_time":592555,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 04:01:00.059 [info] {"source":"oban","duration":773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:01:00.574 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:01:30.060 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:02:00.061 [info] {"source":"oban","duration":745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:02:00.575 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:02:30.062 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:03:00.063 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:03:00.576 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:03:30.064 [info] {"source":"oban","duration":802,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:04:00.065 [info] {"source":"oban","duration":1126,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:04:00.577 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:04:30.067 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:05:00.068 [info] {"source":"oban","duration":675,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:05:00.578 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:05:30.069 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:06:00.070 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:06:00.579 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:06:30.071 [info] {"source":"oban","duration":470,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:07:00.072 [info] {"source":"oban","duration":1071,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:07:00.580 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:07:30.074 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:08:00.075 [info] {"source":"oban","duration":794,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:08:00.581 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:08:30.076 [info] {"source":"oban","duration":771,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:09:00.077 [info] {"source":"oban","duration":798,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:09:00.582 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:09:30.078 [info] {"source":"oban","duration":747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:10:00.079 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:10:00.583 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:10:30.080 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:11:00.081 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:11:00.584 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:11:30.082 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:12:00.083 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:12:00.585 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:12:30.084 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:13:00.085 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:13:00.586 [info] {"source":"oban","duration":167,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:13:30.086 [info] {"source":"oban","duration":796,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:14:00.087 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:14:00.587 [info] {"source":"oban","duration":126,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:14:30.088 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:15:00.089 [info] {"source":"oban","duration":783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:15:00.588 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:15:30.090 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:16:00.091 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:16:00.589 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:16:30.092 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:17:00.093 [info] {"source":"oban","duration":1276,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:17:00.590 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:17:30.095 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:18:00.096 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:18:00.591 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:18:30.097 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:19:00.098 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:19:00.592 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:19:30.099 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:20:00.100 [info] {"source":"oban","duration":816,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:20:00.593 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:20:30.102 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:21:00.103 [info] {"source":"oban","duration":752,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:21:00.594 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:21:30.104 [info] {"source":"oban","duration":646,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:22:00.105 [info] {"source":"oban","duration":467,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:22:00.595 [info] {"source":"oban","duration":222,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:22:30.106 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:23:00.107 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:23:00.596 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:23:30.108 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:24:00.109 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:24:00.597 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:24:30.110 [info] {"source":"oban","duration":774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:25:00.111 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:25:00.598 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:25:30.112 [info] {"source":"oban","duration":792,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:26:00.113 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:26:00.599 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:26:30.115 [info] {"source":"oban","duration":1613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:27:00.116 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:27:00.600 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:27:30.117 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:28:00.118 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:28:00.601 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:28:30.119 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:29:00.120 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:29:00.602 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:29:30.121 [info] {"source":"oban","duration":765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:30:00.122 [info] {"source":"oban","duration":775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:30:00.603 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:30:17.611 [info] GET /sitemap.xml 04:30:17.612 [debug] QUERY OK source="settings" db=0.3ms idle=1727.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:30:17.612 [debug] QUERY OK source="settings" db=0.1ms idle=1727.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:30:17.612 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 04:30:17.613 [error] #PID<0.553538.0> running PinchflatWeb.Endpoint (connection #PID<0.553537.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553537.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37222}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bbe16a2db1a53e-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.553538.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bbe16a2db1a53e-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8wPYuyFFgg68IAMy-i"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553537.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37222}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bbe16a2db1a53e-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553537.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37222}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bbe16a2db1a53e-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.553538.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, (truncated) 04:30:30.124 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:31:00.125 [info] {"source":"oban","duration":785,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:31:00.604 [info] {"source":"oban","duration":272,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:31:30.126 [info] {"source":"oban","duration":746,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:32:00.127 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:32:00.605 [info] {"source":"oban","duration":175,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:32:30.128 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:33:00.129 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:33:00.606 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:33:30.130 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:34:00.131 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:34:00.607 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:34:30.132 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:35:00.133 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:35:00.608 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:35:30.134 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:36:00.135 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:36:00.609 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:36:30.136 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:37:00.137 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:37:00.610 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:37:30.138 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:38:00.139 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:38:00.611 [info] {"source":"oban","duration":247,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:38:30.140 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:39:00.141 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:39:00.612 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:39:30.142 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:40:00.143 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:40:00.613 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:40:30.144 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:41:00.145 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:41:00.614 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:41:30.146 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:42:00.147 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:42:00.615 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:42:30.148 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:43:00.149 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:43:00.616 [info] {"source":"oban","duration":177,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:43:30.150 [info] {"source":"oban","duration":764,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:44:00.152 [info] {"source":"oban","duration":726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:44:00.617 [info] {"source":"oban","duration":168,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:44:30.153 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:45:00.154 [info] {"source":"oban","duration":771,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:45:00.618 [info] {"source":"oban","duration":167,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:45:30.155 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:46:00.156 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:46:00.619 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:46:30.157 [info] {"source":"oban","duration":763,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:47:00.158 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:47:00.620 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:47:30.159 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:48:00.160 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:48:00.621 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:48:30.161 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:49:00.162 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:49:00.622 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:49:30.163 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:50:00.164 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:50:00.623 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:50:30.165 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:51:00.166 [info] {"source":"oban","duration":808,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:51:00.624 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:51:30.167 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:52:00.168 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:52:00.625 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:52:30.169 [info] {"source":"oban","duration":806,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:53:00.170 [info] {"source":"oban","duration":749,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:53:00.626 [info] {"source":"oban","duration":240,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:53:30.171 [info] {"source":"oban","duration":551,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:54:00.172 [info] {"source":"oban","duration":1147,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:54:00.627 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:54:30.174 [info] {"source":"oban","duration":803,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:55:00.175 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:55:00.628 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:55:30.176 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:56:00.177 [info] {"source":"oban","duration":805,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:56:00.629 [info] {"source":"oban","duration":223,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:56:30.178 [info] {"source":"oban","duration":798,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:56:54.831 [info] GET /sitemap.xml 04:56:54.832 [debug] QUERY OK source="settings" db=0.6ms idle=908.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:56:54.832 [debug] QUERY OK source="settings" db=0.1ms idle=909.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 04:56:54.832 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 04:56:54.833 [error] #PID<0.553687.0> running PinchflatWeb.Endpoint (connection #PID<0.553686.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553686.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 39436}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc0868ead2962d-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.553687.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bc0868ead2962d-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8xsW1ld8IzuN8AQZxh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553686.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 39436}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc0868ead2962d-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553686.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 39436}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc0868ead2962d-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.553687.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 04:57:00.179 [info] {"source":"oban","duration":776,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:57:00.630 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:57:30.180 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:58:00.181 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:58:00.631 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:58:30.182 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:59:00.183 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:59:00.632 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:59:30.184 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:00:00.185 [info] {"source":"oban","duration":1067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:00:00.634 [info] {"source":"oban","duration":551,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:00:30.187 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:01:00.188 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:01:00.634 [info] {"source":"oban","duration":90,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:01:30.189 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:02:00.190 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:02:00.635 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:02:30.191 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:03:00.192 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:03:00.636 [info] {"source":"oban","duration":253,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:03:30.193 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:04:00.194 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:04:00.637 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:04:30.195 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:05:00.196 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:05:00.638 [info] {"source":"oban","duration":235,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:05:30.197 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:06:00.198 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:06:00.639 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:06:30.199 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:07:00.200 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:07:00.640 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:07:30.201 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:08:00.202 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:08:00.641 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:08:30.203 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:09:00.204 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:09:00.642 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:09:30.205 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:10:00.206 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:10:00.643 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:10:30.207 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:11:00.208 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:11:00.644 [info] {"source":"oban","duration":224,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:11:30.209 [info] {"source":"oban","duration":828,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:12:00.211 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:12:00.645 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:12:30.212 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:13:00.213 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:13:00.646 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:13:30.214 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:14:00.215 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:14:00.647 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:14:30.216 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:15:00.217 [info] {"source":"oban","duration":743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:15:00.648 [info] {"source":"oban","duration":152,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:15:30.218 [info] {"source":"oban","duration":745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:16:00.219 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:16:00.649 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:16:30.220 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:17:00.221 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:17:00.650 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:17:30.222 [info] {"source":"oban","duration":1143,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:18:00.224 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:18:00.651 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:18:30.225 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:19:00.226 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:19:00.652 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:19:30.227 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:20:00.228 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:20:00.653 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:20:30.229 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:21:00.230 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:21:00.654 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:21:22.852 [info] GET /sitemap.xml 05:21:22.853 [debug] QUERY OK source="settings" db=0.1ms idle=902.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:21:22.853 [debug] QUERY OK source="settings" db=0.1ms idle=902.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:21:22.853 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 05:21:22.854 [error] #PID<0.553823.0> running PinchflatWeb.Endpoint (connection #PID<0.553822.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553822.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42928}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc2c402f5cc6fa-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.553823.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bc2c402f5cc6fa-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN8zBzpPyxovsjYAQaDB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553822.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42928}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc2c402f5cc6fa-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.553822.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42928}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc2c402f5cc6fa-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.553823.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 05:21:30.231 [info] {"source":"oban","duration":642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:22:00.232 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:22:00.655 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:22:30.233 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:23:00.234 [info] {"source":"oban","duration":599,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:23:00.656 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:23:30.235 [info] {"source":"oban","duration":487,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:24:00.236 [info] {"source":"oban","duration":778,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:24:00.657 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:24:30.237 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:25:00.238 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:25:00.658 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:25:30.239 [info] {"source":"oban","duration":832,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:26:00.241 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:26:00.660 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:26:30.242 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:27:00.243 [info] {"source":"oban","duration":733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:27:00.660 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:27:30.244 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:28:00.245 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:28:00.661 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:28:18.507 [debug] Tzdata polling for update. 05:28:18.739 [debug] Tzdata polling shows the loaded tz database is up to date. 05:28:30.246 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:29:00.247 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:29:00.662 [info] {"source":"oban","duration":271,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:29:30.248 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:30:00.249 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:30:00.663 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:30:30.250 [info] {"source":"oban","duration":726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:31:00.251 [info] {"source":"oban","duration":1099,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:31:00.664 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:31:30.253 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:32:00.254 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:32:00.665 [info] {"source":"oban","duration":232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:32:30.255 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:33:00.256 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:33:00.666 [info] {"source":"oban","duration":225,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:33:30.257 [info] {"source":"oban","duration":776,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:34:00.258 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:34:00.667 [info] {"source":"oban","duration":220,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:34:30.259 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:35:00.260 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:35:00.668 [info] {"source":"oban","duration":231,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:35:30.261 [info] {"source":"oban","duration":769,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:36:00.262 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:36:00.669 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:36:30.263 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:37:00.264 [info] {"source":"oban","duration":675,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:37:00.670 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:37:30.265 [info] {"source":"oban","duration":561,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:38:00.266 [info] {"source":"oban","duration":597,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:38:00.671 [info] {"source":"oban","duration":241,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:38:30.267 [info] {"source":"oban","duration":483,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:39:00.268 [info] {"source":"oban","duration":773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:39:00.672 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:39:30.269 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:40:00.270 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:40:00.673 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:40:30.271 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:41:00.272 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:41:00.674 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:41:30.273 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:42:00.274 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:42:00.675 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:42:30.275 [info] {"source":"oban","duration":842,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:43:00.276 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:43:00.676 [info] {"source":"oban","duration":226,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:43:30.277 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:44:00.278 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:44:00.677 [info] {"source":"oban","duration":222,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:44:30.279 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:45:00.280 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:45:00.678 [info] {"source":"oban","duration":131,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:45:30.281 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:46:00.282 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:46:00.679 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:46:30.283 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:47:00.284 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:47:00.680 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:47:30.285 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:48:00.286 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:48:00.681 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:48:30.287 [info] {"source":"oban","duration":769,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:49:00.288 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:49:00.682 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:49:30.289 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:50:00.290 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:50:00.683 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:50:30.291 [info] {"source":"oban","duration":769,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:51:00.292 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:51:00.684 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:51:30.293 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:52:00.294 [info] {"source":"oban","duration":747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:52:00.685 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:52:30.295 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:53:00.296 [info] {"source":"oban","duration":644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:53:00.686 [info] {"source":"oban","duration":242,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:53:30.297 [info] {"source":"oban","duration":552,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:54:00.298 [info] {"source":"oban","duration":447,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:54:00.687 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:54:30.300 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:55:00.301 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:55:00.688 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:55:30.302 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:56:00.303 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:56:00.689 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:56:30.304 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:57:00.305 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:57:00.690 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:57:30.309 [info] {"source":"oban","duration":2775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:58:00.311 [info] {"source":"oban","duration":755,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:58:00.691 [info] {"source":"oban","duration":230,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:58:30.312 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:59:00.313 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:59:00.692 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:59:30.314 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:00:00.315 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:00:00.693 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:00:30.316 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:01:00.317 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:01:00.694 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:01:30.318 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:01:36.007 [info] GET /sitemap.xml 06:01:36.008 [debug] QUERY OK source="settings" db=0.1ms idle=207.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:36.009 [debug] QUERY OK source="settings" db=0.4ms idle=17.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:01:36.009 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:01:36.009 [error] #PID<0.554055.0> running PinchflatWeb.Endpoint (connection #PID<0.554053.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554053.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 57542}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc672a9a9ea691-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.554055.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bc672a9a9ea691-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN81ORWPCh5Wm6sABm3j"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554053.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 57542}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc672a9a9ea691-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554053.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 57542}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc672a9a9ea691-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.554055.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 06:02:00.319 [info] {"source":"oban","duration":783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:02:00.695 [info] {"source":"oban","duration":231,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:02:30.320 [info] {"source":"oban","duration":726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:03:00.321 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:03:00.696 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:03:30.322 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:04:00.323 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:04:00.697 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:04:30.324 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:05:00.325 [info] {"source":"oban","duration":783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:05:00.698 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:05:30.326 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:06:00.327 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:06:00.699 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:06:30.328 [info] {"source":"oban","duration":770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:07:00.329 [info] {"source":"oban","duration":775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:07:00.700 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:07:30.330 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:08:00.331 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:08:00.701 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:08:30.332 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:09:00.332 [info] {"source":"oban","duration":448,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:09:00.702 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:09:30.334 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:10:00.335 [info] {"source":"oban","duration":770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:10:00.703 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:10:30.336 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:11:00.337 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:11:00.704 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:11:30.338 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:12:00.339 [info] {"source":"oban","duration":767,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:12:00.705 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:12:30.340 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:13:00.341 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:13:00.706 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:13:30.342 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:14:00.343 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:14:00.707 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:14:30.344 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:15:00.345 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:15:00.708 [info] {"source":"oban","duration":127,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:15:30.346 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:16:00.347 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:16:00.709 [info] {"source":"oban","duration":373,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:16:30.348 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:17:00.349 [info] {"source":"oban","duration":675,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:17:00.710 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:17:30.350 [info] {"source":"oban","duration":648,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:18:00.351 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:18:00.711 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:18:30.352 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:19:00.353 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:19:00.712 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:19:30.354 [info] {"source":"oban","duration":747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:20:00.355 [info] {"source":"oban","duration":726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:20:00.713 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:20:30.356 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:21:00.357 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:21:00.714 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:21:30.358 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:22:00.359 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:22:00.715 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:22:30.360 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:23:00.361 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:23:00.716 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:23:30.362 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:24:00.362 [info] {"source":"oban","duration":484,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:24:00.717 [info] {"source":"oban","duration":221,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:24:30.364 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:25:00.365 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:25:00.718 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:25:30.366 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:26:00.367 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:26:00.719 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:26:30.368 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:27:00.369 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:27:00.720 [info] {"source":"oban","duration":235,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:27:30.370 [info] {"source":"oban","duration":761,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:28:00.371 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:28:00.721 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:28:30.372 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:29:00.373 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:29:00.722 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:29:30.374 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:30:00.375 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:30:00.723 [info] {"source":"oban","duration":125,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:30:30.376 [info] {"source":"oban","duration":834,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:31:00.378 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:31:00.724 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:31:30.379 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:32:00.380 [info] {"source":"oban","duration":773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:32:00.725 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:32:30.381 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:33:00.382 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:33:00.726 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:33:24.113 [info] GET /sitemap.xml 06:33:24.113 [debug] QUERY OK source="settings" db=0.1ms idle=196.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:33:24.114 [debug] QUERY OK source="settings" db=0.2ms idle=95.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:33:24.114 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 06:33:24.114 [error] #PID<0.554231.0> running PinchflatWeb.Endpoint (connection #PID<0.554230.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554230.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55332}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc95c05818cdd8-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.554231.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bc95c05818cdd8-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN829VmBSLb7-9gABnVj"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554230.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55332}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc95c05818cdd8-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554230.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55332}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bc95c05818cdd8-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.554231.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, (truncated) 06:33:30.383 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:34:00.384 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:34:00.727 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:34:30.385 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:35:00.386 [info] {"source":"oban","duration":800,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:35:00.728 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:35:30.387 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:36:00.388 [info] {"source":"oban","duration":758,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:36:00.729 [info] {"source":"oban","duration":222,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:36:30.389 [info] {"source":"oban","duration":764,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:37:00.390 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:37:00.730 [info] {"source":"oban","duration":230,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:37:30.391 [info] {"source":"oban","duration":775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:38:00.392 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:38:00.731 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:38:30.393 [info] {"source":"oban","duration":741,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:39:00.394 [info] {"source":"oban","duration":633,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:39:00.732 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:39:30.395 [info] {"source":"oban","duration":612,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:40:00.396 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:40:00.733 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:40:30.397 [info] {"source":"oban","duration":500,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:41:00.397 [info] {"source":"oban","duration":445,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:41:00.734 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:41:30.399 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:42:00.400 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:42:00.735 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:42:30.401 [info] {"source":"oban","duration":792,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:43:00.402 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:43:00.736 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:43:30.403 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:44:00.404 [info] {"source":"oban","duration":774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:44:00.737 [info] {"source":"oban","duration":159,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:44:30.405 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:45:00.406 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:45:00.738 [info] {"source":"oban","duration":177,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:45:30.407 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:46:00.408 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:46:00.739 [info] {"source":"oban","duration":129,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:46:30.409 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:47:00.410 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:47:00.740 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:47:30.411 [info] {"source":"oban","duration":761,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:48:00.412 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:48:00.741 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:48:30.413 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:49:00.414 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:49:00.742 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:49:30.415 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:50:00.416 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:50:00.743 [info] {"source":"oban","duration":177,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:50:30.417 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:51:00.418 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:51:00.744 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:51:30.419 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:52:00.420 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:52:00.745 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:52:30.421 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:53:00.422 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:53:00.746 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:53:30.423 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:54:00.424 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:54:00.747 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:54:23.780 [info] GET / 06:54:23.780 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 06:54:23.780 [debug] QUERY OK source="settings" db=0.1ms idle=1725.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:54:23.781 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1725.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 06:54:23.781 [debug] QUERY OK source="sources" db=0.1ms idle=1725.7ms SELECT count(s0."id") FROM "sources" AS s0 [] 06:54:23.784 [debug] QUERY OK source="media_items" db=2.6ms idle=1568.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 06:54:23.785 [debug] QUERY OK source="media_items" db=0.7ms idle=570.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 06:54:23.786 [debug] QUERY OK source="settings" db=0.4ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:54:23.786 [debug] QUERY OK source="settings" db=0.3ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:54:23.787 [debug] QUERY OK source="settings" db=0.5ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:54:23.788 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 06:54:23.788 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 06:54:23.789 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 06:54:23.790 [debug] QUERY OK source="sources" db=0.1ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 06:54:23.796 [debug] QUERY OK source="media_items" db=3.8ms idle=5.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 06:54:23.798 [debug] QUERY OK source="media_items" db=1.9ms idle=8.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 06:54:23.799 [info] Sent 200 in 19ms 06:54:30.425 [info] {"source":"oban","duration":756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:55:00.426 [info] {"source":"oban","duration":673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:55:00.748 [info] {"source":"oban","duration":223,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:55:30.427 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:56:00.428 [info] {"source":"oban","duration":619,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:56:00.749 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:56:30.429 [info] {"source":"oban","duration":772,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:57:00.431 [info] {"source":"oban","duration":605,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:57:00.750 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:57:30.432 [info] {"source":"oban","duration":502,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:58:00.433 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:58:00.751 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:58:30.434 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:59:00.435 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:59:00.752 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:59:30.436 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:00:00.437 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:00:00.753 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:00:30.438 [info] {"source":"oban","duration":795,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:01:00.439 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:01:00.754 [info] {"source":"oban","duration":154,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:01:30.440 [info] {"source":"oban","duration":875,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:02:00.442 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:02:00.755 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:02:30.443 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:03:00.444 [info] {"source":"oban","duration":778,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:03:00.756 [info] {"source":"oban","duration":125,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:03:30.445 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:04:00.446 [info] {"source":"oban","duration":763,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:04:00.757 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:04:30.447 [info] {"source":"oban","duration":902,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:05:00.449 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:05:00.758 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:05:30.450 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:06:00.451 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:06:00.759 [info] {"source":"oban","duration":234,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:06:30.452 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:07:00.453 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:07:00.760 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:07:30.454 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:08:00.455 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:08:00.761 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:08:30.456 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:09:00.457 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:09:00.762 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:09:30.458 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:10:00.459 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:10:00.763 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:10:30.460 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:11:00.461 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:11:00.764 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:11:30.462 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:12:00.463 [info] {"source":"oban","duration":641,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:12:00.765 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:12:30.464 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:13:00.465 [info] {"source":"oban","duration":569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:13:00.766 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:13:30.465 [info] {"source":"oban","duration":440,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:14:00.467 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:14:00.767 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:14:30.468 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:15:00.469 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:15:00.768 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:15:30.470 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:16:00.471 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:16:00.769 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:16:30.472 [info] {"source":"oban","duration":838,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:17:00.474 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:17:00.770 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:17:30.475 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:18:00.476 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:18:00.771 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:18:30.477 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:19:00.478 [info] {"source":"oban","duration":747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:19:00.772 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:19:30.479 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:20:00.480 [info] {"source":"oban","duration":1199,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:20:00.773 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:20:30.482 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:21:00.483 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:21:00.774 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:21:30.484 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:22:00.485 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:22:00.775 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:22:30.486 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:23:00.487 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:23:00.776 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:23:30.488 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:24:00.489 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:24:00.777 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:24:30.490 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:25:00.491 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:25:00.778 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:25:30.492 [info] {"source":"oban","duration":762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:26:00.493 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:26:00.779 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:26:30.494 [info] {"source":"oban","duration":613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:27:00.495 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:27:00.780 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:27:30.496 [info] {"source":"oban","duration":604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:28:00.497 [info] {"source":"oban","duration":525,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:28:00.781 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:28:30.498 [info] {"source":"oban","duration":587,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:29:00.499 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:29:00.782 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:29:30.500 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:30:00.501 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:30:00.783 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:30:30.502 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:31:00.503 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:31:00.784 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:31:30.504 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:32:00.505 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:32:00.785 [info] {"source":"oban","duration":158,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:32:30.506 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:33:00.507 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:33:00.786 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:33:30.508 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:34:00.509 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:34:00.787 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:34:30.510 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:35:00.511 [info] {"source":"oban","duration":803,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:35:00.788 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:35:30.512 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:36:00.513 [info] {"source":"oban","duration":671,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:36:00.789 [info] {"source":"oban","duration":362,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:36:30.514 [info] {"source":"oban","duration":801,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:37:00.515 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:37:00.790 [info] {"source":"oban","duration":375,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:37:30.516 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:38:00.517 [info] {"source":"oban","duration":780,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:38:00.792 [info] {"source":"oban","duration":451,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:38:30.519 [info] {"source":"oban","duration":776,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:39:00.520 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:39:00.793 [info] {"source":"oban","duration":1297,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:39:30.521 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:40:00.522 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:40:00.794 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:40:30.523 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:41:00.524 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:41:00.795 [info] {"source":"oban","duration":177,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:41:30.525 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:42:00.526 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:42:00.796 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:42:30.527 [info] {"source":"oban","duration":632,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:43:00.528 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:43:00.797 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:43:30.529 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:44:00.530 [info] {"source":"oban","duration":528,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:44:00.798 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:44:30.531 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:45:00.532 [info] {"source":"oban","duration":726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:45:00.799 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:45:30.533 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:46:00.534 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:46:00.800 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:46:30.535 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:47:00.536 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:47:00.801 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:47:08.652 [info] GET / 07:47:08.652 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 07:47:08.653 [debug] QUERY OK source="settings" db=0.2ms idle=956.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:08.653 [debug] QUERY OK source="media_profiles" db=0.5ms idle=570.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 07:47:08.654 [debug] QUERY OK source="sources" db=0.0ms idle=571.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 07:47:08.657 [debug] QUERY OK source="media_items" db=2.7ms idle=571.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:47:08.657 [debug] QUERY OK source="media_items" db=0.6ms idle=574.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:47:08.660 [debug] QUERY OK source="settings" db=1.7ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:08.661 [debug] QUERY OK source="settings" db=0.5ms queue=0.3ms idle=6.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:08.663 [debug] QUERY OK source="settings" db=0.6ms idle=8.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:08.664 [debug] QUERY OK source="tasks" db=0.5ms idle=6.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 07:47:08.666 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=7.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:47:08.669 [debug] QUERY OK source="media_items" db=2.0ms idle=7.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:47:08.671 [debug] QUERY OK source="sources" db=1.8ms idle=8.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 07:47:08.681 [debug] QUERY OK source="media_items" db=4.3ms idle=13.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 07:47:08.684 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=16.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:47:08.685 [info] Sent 200 in 33ms 07:47:11.118 [info] GET /sources 07:47:11.118 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 07:47:11.120 [debug] QUERY OK source="settings" db=0.1ms idle=1038.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:11.121 [debug] QUERY OK source="settings" db=0.2ms idle=1038.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:11.121 [debug] QUERY OK source="settings" db=0.2ms idle=1039.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:11.123 [debug] QUERY OK source="settings" db=0.2ms idle=1040.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:11.123 [debug] QUERY OK source="settings" db=0.2ms idle=423.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:11.144 [debug] QUERY OK source="sources" db=9.9ms idle=13.7ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 07:47:11.156 [debug] QUERY OK source="sources" db=10.1ms idle=25.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 07:47:11.164 [info] Sent 200 in 46ms 07:47:16.208 [info] GET /settings 07:47:16.208 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 07:47:16.208 [debug] QUERY OK source="settings" db=0.1ms idle=1125.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:16.209 [debug] QUERY OK source="settings" db=0.1ms idle=1126.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:16.209 [debug] QUERY OK source="settings" db=0.1ms idle=1126.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:16.209 [debug] QUERY OK source="settings" db=0.1ms idle=1127.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:16.211 [info] Sent 200 in 3ms 07:47:16.626 [info] GET /media_profiles 07:47:16.626 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 07:47:16.637 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=932.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 07:47:16.638 [debug] QUERY OK source="settings" db=0.1ms idle=429.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:16.639 [debug] QUERY OK source="settings" db=0.2ms idle=429.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:16.639 [debug] QUERY OK source="settings" db=0.1ms idle=430.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:16.643 [info] Sent 200 in 16ms 07:47:18.645 [info] GET /app_info 07:47:18.646 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 07:47:18.646 [debug] QUERY OK source="settings" db=0.1ms idle=939.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:18.646 [debug] QUERY OK source="settings" db=0.1ms idle=564.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:18.647 [debug] QUERY OK source="settings" db=0.1ms idle=564.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:18.648 [debug] QUERY OK source="settings" db=0.0ms idle=565.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:18.648 [debug] QUERY OK source="settings" db=0.1ms idle=565.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:18.649 [info] Sent 200 in 3ms 07:47:20.961 [info] GET /sources/3/media/256408 07:47:20.961 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256408", "source_id" => "3"} Pipelines: [:browser] 07:47:20.962 [debug] QUERY OK source="media_items" db=0.2ms idle=879.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" = ?) [256408] 07:47:20.962 [debug] QUERY OK source="tasks" db=0.1ms idle=879.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" [256408] 07:47:20.963 [debug] QUERY OK source="sources" db=0.3ms idle=879.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 07:47:20.963 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=880.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6569, 6584] 07:47:20.964 [debug] QUERY OK source="settings" db=0.1ms idle=253.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:20.964 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:20.964 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:20.965 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:20.977 [info] Sent 200 in 16ms 07:47:22.990 [info] GET /sources/5/media/256067 07:47:22.990 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256067", "source_id" => "5"} Pipelines: [:browser] 07:47:22.991 [debug] QUERY OK source="media_items" db=0.3ms idle=908.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" = ?) [256067] 07:47:22.991 [debug] QUERY OK source="tasks" db=0.2ms idle=908.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" [256067] 07:47:22.991 [debug] QUERY OK source="sources" db=0.3ms idle=908.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 07:47:22.993 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=909.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6565, 6583] 07:47:22.993 [debug] QUERY OK source="settings" db=0.2ms idle=280.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:22.994 [debug] QUERY OK source="settings" db=0.3ms 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 [] 07:47:22.994 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:22.995 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:22.997 [info] Sent 200 in 7ms 07:47:23.553 [info] GET /sources/3 07:47:23.553 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 07:47:23.553 [debug] QUERY OK source="sources" db=0.2ms idle=560.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 07:47:23.554 [debug] QUERY OK source="media_profiles" db=0.2ms idle=560.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:23.576 [debug] QUERY OK source="tasks" db=21.9ms idle=560.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 (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 07:47:23.577 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=582.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6579] 07:47:23.577 [debug] QUERY OK source="settings" db=0.1ms idle=581.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:23.578 [debug] QUERY OK source="settings" db=0.0ms idle=24.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:23.578 [debug] QUERY OK source="settings" db=0.0ms idle=24.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:23.584 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [3] 07:47:23.585 [debug] QUERY OK source="media_items" db=0.7ms idle=8.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 07:47:23.617 [debug] QUERY OK source="media_items" db=30.6ms idle=8.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 07:47:23.618 [debug] QUERY OK source="sources" db=0.1ms idle=39.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 07:47:23.618 [debug] QUERY OK source="media_items" db=0.1ms idle=39.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 07:47:23.619 [debug] QUERY OK source="media_items" db=0.2ms idle=34.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 ? [3, 10, 0] 07:47:23.620 [debug] QUERY OK source="sources" db=0.1ms idle=34.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 07:47:23.624 [debug] QUERY OK source="media_items" db=0.3ms idle=6.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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"))))) [3] 07:47:23.630 [debug] QUERY OK source="media_items" db=0.5ms idle=11.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 07:47:23.632 [info] Sent 200 in 79ms 07:47:24.283 [info] GET /sources/5 07:47:24.283 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 07:47:24.284 [debug] QUERY OK source="sources" db=0.2ms idle=664.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 07:47:24.285 [debug] QUERY OK source="media_profiles" db=0.1ms idle=663.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:24.329 [debug] QUERY OK source="tasks" db=44.2ms idle=661.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [5, "executing", "available", "scheduled", "retryable"] 07:47:24.330 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=699.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6577] 07:47:24.330 [debug] QUERY OK source="settings" db=0.1ms idle=615.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:24.330 [debug] QUERY OK source="settings" db=0.2ms idle=46.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:24.331 [debug] QUERY OK source="settings" db=0.1ms idle=46.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:24.333 [debug] QUERY OK source="sources" db=0.2ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 07:47:24.334 [debug] QUERY OK source="media_items" db=1.3ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [5] 07:47:24.336 [debug] QUERY OK source="media_items" db=1.7ms idle=4.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 07:47:24.337 [debug] QUERY OK source="sources" db=0.3ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 07:47:24.338 [debug] QUERY OK source="media_items" db=0.2ms idle=6.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 07:47:24.537 [debug] QUERY OK source="media_items" db=198.8ms idle=5.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 07:47:24.538 [debug] QUERY OK source="sources" db=0.3ms idle=203.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 07:47:24.541 [debug] QUERY OK source="media_items" db=2.6ms idle=202.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"))))) [5] 07:47:24.544 [debug] QUERY OK source="media_items" db=2.3ms idle=204.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 ? [5, 10, 0] 07:47:24.545 [info] Sent 200 in 262ms 07:47:24.926 [info] GET /sources/5/media/253343 07:47:24.926 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "253343", "source_id" => "5"} Pipelines: [:browser] 07:47:24.927 [debug] QUERY OK source="media_items" db=0.2ms idle=389.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" = ?) [253343] 07:47:24.927 [debug] QUERY OK source="tasks" db=0.2ms idle=388.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" [253343] 07:47:24.927 [debug] QUERY OK source="sources" db=0.2ms idle=385.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 07:47:24.928 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=383.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6523, 6538] 07:47:24.928 [debug] QUERY OK source="settings" db=0.1ms idle=211.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:24.928 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:24.929 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:24.930 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:24.932 [info] Sent 200 in 5ms 07:47:26.935 [info] GET /sources/5/media/251079 07:47:26.935 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "251079", "source_id" => "5"} Pipelines: [:browser] 07:47:26.935 [debug] QUERY OK source="media_items" db=0.2ms idle=853.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" = ?) [251079] 07:47:26.936 [debug] QUERY OK source="tasks" db=0.2ms idle=853.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [251079] 07:47:26.936 [debug] QUERY OK source="sources" db=0.4ms idle=853.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 07:47:26.937 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=854.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6485, 6500] 07:47:26.937 [debug] QUERY OK source="settings" db=0.2ms idle=217.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:26.938 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:26.938 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:26.939 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:26.941 [info] Sent 200 in 6ms 07:47:28.761 [info] GET /sources/5/media/252167 07:47:28.761 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "252167", "source_id" => "5"} Pipelines: [:browser] 07:47:28.761 [debug] QUERY OK source="media_items" db=0.2ms idle=678.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" = ?) [252167] 07:47:28.762 [debug] QUERY OK source="tasks" db=0.1ms idle=679.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" [252167] 07:47:28.762 [debug] QUERY OK source="sources" db=0.4ms idle=679.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 07:47:28.763 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=680.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6503, 6520] 07:47:28.763 [debug] QUERY OK source="settings" db=0.1ms idle=40.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:28.764 [debug] QUERY OK source="settings" db=0.0ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:28.764 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:28.765 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:28.767 [info] Sent 200 in 6ms 07:47:30.537 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:48:00.538 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:48:00.802 [info] {"source":"oban","duration":152,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:48:30.539 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:49:00.540 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:49:00.803 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:49:30.541 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:50:00.542 [info] {"source":"oban","duration":805,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:50:00.804 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:50:30.543 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:51:00.544 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:51:00.805 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:51:30.545 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:52:00.546 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:52:00.806 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:52:30.547 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:53:00.548 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:53:00.807 [info] {"source":"oban","duration":175,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:53:30.549 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:54:00.550 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:54:00.808 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:54:30.551 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:55:00.552 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:55:00.809 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:55:30.553 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:56:00.554 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:56:00.810 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:56:30.555 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:57:00.556 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:57:00.811 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:57:30.557 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:58:00.558 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:58:00.812 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:58:30.559 [info] {"source":"oban","duration":602,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:59:00.560 [info] {"source":"oban","duration":571,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:59:00.813 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:59:30.561 [info] {"source":"oban","duration":529,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:00:00.562 [info] {"source":"oban","duration":463,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:00:00.814 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:00:30.563 [info] {"source":"oban","duration":764,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:00:33.778 [info] GET /sitemap.xml 08:00:33.779 [debug] QUERY OK source="settings" db=0.1ms idle=1608.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:33.779 [debug] QUERY OK source="settings" db=0.1ms idle=1609.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:33.779 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:00:33.780 [error] #PID<0.554743.0> running PinchflatWeb.Endpoint (connection #PID<0.554742.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554742.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 57646}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bd156e2f57bd4a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.554743.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bd156e2f57bd4a-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN87tvnewgAhayUAMzhC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554742.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 57646}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bd156e2f57bd4a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554742.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 57646}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bd156e2f57bd4a-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.554743.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 08:01:00.564 [info] {"source":"oban","duration":772,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:01:00.815 [info] {"source":"oban","duration":222,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:01:30.565 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:02:00.566 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:02:00.816 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:02:30.567 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:03:00.568 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:03:00.817 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:03:30.569 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:04:00.570 [info] {"source":"oban","duration":743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:04:00.818 [info] {"source":"oban","duration":97,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:04:30.571 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:05:00.572 [info] {"source":"oban","duration":631,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:05:00.819 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:05:30.573 [info] {"source":"oban","duration":633,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:06:00.574 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:06:00.820 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:06:30.575 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:07:00.576 [info] {"source":"oban","duration":630,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:07:00.821 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:07:30.577 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:08:00.578 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:08:00.822 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:08:30.579 [info] {"source":"oban","duration":797,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:09:00.580 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:09:00.823 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:09:30.581 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:10:00.582 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:10:00.824 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:10:30.583 [info] {"source":"oban","duration":855,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:11:00.585 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:11:00.825 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:11:30.586 [info] {"source":"oban","duration":773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:12:00.587 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:12:00.826 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:12:30.588 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:13:00.589 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:13:00.827 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:13:30.590 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:14:00.591 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:14:00.828 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:14:30.592 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:15:00.593 [info] {"source":"oban","duration":563,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:15:00.829 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:15:30.594 [info] {"source":"oban","duration":507,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:16:00.594 [info] {"source":"oban","duration":474,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:16:00.830 [info] {"source":"oban","duration":248,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:16:30.596 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:17:00.597 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:17:00.831 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:17:30.598 [info] {"source":"oban","duration":671,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:18:00.599 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:18:00.832 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:18:30.600 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:19:00.601 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:19:00.833 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:19:30.602 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:20:00.603 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:20:00.834 [info] {"source":"oban","duration":94,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:20:30.604 [info] {"source":"oban","duration":744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:21:00.605 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:21:00.835 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:21:30.606 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:22:00.607 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:22:00.836 [info] {"source":"oban","duration":173,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:22:30.608 [info] {"source":"oban","duration":942,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:23:00.610 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:23:00.837 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:23:30.611 [info] {"source":"oban","duration":802,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:24:00.612 [info] {"source":"oban","duration":1083,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 08:24:00.838 [info] {"source":"oban","duration":171,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:24:30.614 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:25:00.616 [info] {"source":"oban","duration":1540,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:25:00.839 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:25:30.617 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:26:00.618 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:26:00.840 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:26:30.619 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:27:00.620 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:27:00.841 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:27:30.621 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:28:00.622 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:28:00.842 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:28:30.623 [info] {"source":"oban","duration":777,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:29:00.624 [info] {"source":"oban","duration":788,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:29:00.843 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:29:30.625 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:30:00.626 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:30:00.844 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:30:30.627 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:31:00.628 [info] {"source":"oban","duration":587,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:31:00.845 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:31:30.629 [info] {"source":"oban","duration":547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:32:00.630 [info] {"source":"oban","duration":516,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:32:00.846 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:32:30.631 [info] {"source":"oban","duration":483,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:33:00.632 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:33:00.847 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:33:30.633 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:34:00.634 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:34:00.848 [info] {"source":"oban","duration":170,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:34:30.635 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:35:00.636 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:35:00.849 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:35:30.637 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:36:00.638 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:36:00.850 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:36:14.350 [info] GET /sitemap.xml 08:36:14.351 [debug] QUERY OK source="settings" db=0.1ms idle=452.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:14.351 [debug] QUERY OK source="settings" db=0.1ms 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 [] 08:36:14.351 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:36:14.352 [error] #PID<0.554941.0> running PinchflatWeb.Endpoint (connection #PID<0.554940.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554940.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 50468}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bd49b0de471dfc-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.554941.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bd49b0de471dfc-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN89qV3hRGU_lYEAQcMh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554940.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 50468}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bd49b0de471dfc-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.554940.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 50468}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bd49b0de471dfc-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.554941.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, (truncated) 08:36:30.639 [info] {"source":"oban","duration":737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:37:00.640 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:37:00.851 [info] {"source":"oban","duration":173,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:37:30.641 [info] {"source":"oban","duration":775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:38:00.642 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:38:00.852 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:38:30.643 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:39:00.644 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:39:00.853 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:39:30.645 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:40:00.646 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:40:00.854 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:40:30.647 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:41:00.648 [info] {"source":"oban","duration":813,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:41:00.855 [info] {"source":"oban","duration":240,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:41:30.649 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:42:00.650 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:42:00.857 [info] {"source":"oban","duration":375,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:42:30.651 [info] {"source":"oban","duration":642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:43:00.652 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:43:00.857 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:43:30.653 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:44:00.654 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:44:00.858 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:44:30.655 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:45:00.656 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:45:00.859 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:45:30.657 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:46:00.658 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:46:00.860 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:46:30.659 [info] {"source":"oban","duration":648,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:47:00.660 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:47:00.861 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:47:30.661 [info] {"source":"oban","duration":627,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:48:00.661 [info] {"source":"oban","duration":467,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:48:00.862 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:48:30.663 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:49:00.664 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:49:00.863 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:49:30.665 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:50:00.666 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:50:00.864 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:50:30.667 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:51:00.668 [info] {"source":"oban","duration":749,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:51:00.865 [info] {"source":"oban","duration":105,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:51:30.669 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:52:00.670 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:52:00.866 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:52:30.671 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:53:00.672 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:53:00.867 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:53:30.673 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:54:00.674 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:54:00.868 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:54:30.675 [info] {"source":"oban","duration":775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:55:00.676 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:55:00.869 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:55:30.677 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:56:00.678 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:56:00.870 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:56:30.679 [info] {"source":"oban","duration":743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:57:00.680 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:57:00.871 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:57:30.681 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:58:00.682 [info] {"source":"oban","duration":770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:58:00.872 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:58:30.683 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:59:00.684 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:59:00.873 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:59:30.685 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:00:00.686 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:00:00.874 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:00:30.687 [info] {"source":"oban","duration":719,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:01:00.688 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:01:00.875 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:01:30.689 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:02:00.690 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:02:00.876 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:02:30.691 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:03:00.692 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:03:00.877 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:03:30.693 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:04:00.694 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:04:00.878 [info] {"source":"oban","duration":223,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:04:30.695 [info] {"source":"oban","duration":737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:05:00.696 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:05:00.879 [info] {"source":"oban","duration":154,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:05:30.697 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:06:00.698 [info] {"source":"oban","duration":801,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:06:00.880 [info] {"source":"oban","duration":146,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:06:30.699 [info] {"source":"oban","duration":1314,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:07:00.701 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:07:00.881 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:07:30.704 [info] {"source":"oban","duration":2409,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:08:00.705 [info] {"source":"oban","duration":947,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:08:00.882 [info] {"source":"oban","duration":248,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:08:30.707 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:09:00.708 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:09:00.883 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:09:30.709 [info] {"source":"oban","duration":747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:10:00.710 [info] {"source":"oban","duration":795,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:10:00.884 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:10:30.711 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:11:00.712 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:11:00.885 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:11:30.713 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:12:00.714 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:12:00.886 [info] {"source":"oban","duration":165,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:12:30.715 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:13:00.716 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:13:00.887 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:13:30.717 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:14:00.718 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:14:00.888 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:14:30.719 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:15:00.720 [info] {"source":"oban","duration":726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:15:00.889 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:15:30.721 [info] {"source":"oban","duration":747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:16:00.722 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:16:00.890 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:16:30.723 [info] {"source":"oban","duration":626,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:17:00.724 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:17:00.891 [info] {"source":"oban","duration":220,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:17:30.725 [info] {"source":"oban","duration":611,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:18:00.726 [info] {"source":"oban","duration":779,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:18:00.892 [info] {"source":"oban","duration":222,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:18:30.727 [info] {"source":"oban","duration":561,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:19:00.728 [info] {"source":"oban","duration":525,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:19:00.893 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:19:30.729 [info] {"source":"oban","duration":530,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:20:00.730 [info] {"source":"oban","duration":797,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:20:00.894 [info] {"source":"oban","duration":218,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:20:30.731 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:21:00.732 [info] {"source":"oban","duration":756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:21:00.895 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:21:30.734 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:22:00.735 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:22:00.896 [info] {"source":"oban","duration":159,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:22:30.736 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:23:00.737 [info] {"source":"oban","duration":742,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:23:00.897 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:23:30.738 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:24:00.739 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:24:00.898 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:24:30.740 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:25:00.741 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:25:00.899 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:25:30.742 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:26:00.743 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:26:00.900 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:26:30.744 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:27:00.745 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:27:00.901 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:27:30.746 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:28:00.747 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:28:00.902 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:28:30.748 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:29:00.749 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:29:00.903 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:29:30.750 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:30:00.751 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:30:00.904 [info] {"source":"oban","duration":173,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:30:30.752 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:31:00.753 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:31:00.905 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:31:30.754 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:32:00.755 [info] {"source":"oban","duration":757,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:32:00.906 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:32:30.756 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:33:00.757 [info] {"source":"oban","duration":770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:33:00.907 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:33:30.758 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:34:00.759 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:34:00.908 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:34:30.760 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:35:00.761 [info] {"source":"oban","duration":850,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:35:00.909 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:35:30.763 [info] {"source":"oban","duration":521,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:36:00.764 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:36:00.910 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:36:30.765 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:37:00.766 [info] {"source":"oban","duration":675,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:37:00.911 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:37:30.767 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:38:00.768 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:38:00.912 [info] {"source":"oban","duration":102,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:38:30.769 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:39:00.770 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:39:00.913 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:39:30.771 [info] {"source":"oban","duration":804,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:40:00.773 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:40:00.914 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:40:30.774 [info] {"source":"oban","duration":746,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:41:00.775 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:41:00.915 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:41:30.776 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:42:00.777 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:42:00.916 [info] {"source":"oban","duration":221,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:42:30.778 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:43:00.779 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:43:00.917 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:43:30.780 [info] {"source":"oban","duration":779,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:44:00.781 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:44:00.918 [info] {"source":"oban","duration":235,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:44:30.782 [info] {"source":"oban","duration":788,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:45:00.783 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:45:00.919 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:45:30.784 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:46:00.785 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:46:00.920 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:46:30.786 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:47:00.787 [info] {"source":"oban","duration":1222,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:47:00.921 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:47:30.789 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:48:00.790 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:48:00.922 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:48:30.791 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:49:00.792 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:49:00.923 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:49:30.793 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:50:00.794 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:50:00.924 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:50:30.795 [info] {"source":"oban","duration":574,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:51:00.796 [info] {"source":"oban","duration":546,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:51:00.925 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:51:30.797 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:52:00.798 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:52:00.926 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:52:30.799 [info] {"source":"oban","duration":671,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:53:00.800 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:53:00.927 [info] {"source":"oban","duration":212,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:53:30.801 [info] {"source":"oban","duration":910,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:54:00.803 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:54:00.928 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:54:30.804 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:55:00.805 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:55:00.929 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:55:30.806 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:56:00.807 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:56:00.930 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:56:30.808 [info] {"source":"oban","duration":789,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:57:00.809 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:57:00.931 [info] {"source":"oban","duration":175,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:57:30.810 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:00.811 [info] {"source":"oban","duration":673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:00.932 [info] {"source":"oban","duration":243,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:58:30.812 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:33.108 [info] GET /sitemap.xml 09:58:33.109 [debug] QUERY OK source="settings" db=0.1ms idle=875.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:33.109 [debug] QUERY OK source="settings" db=0.1ms idle=844.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:33.109 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:33.110 [error] #PID<0.555395.0> running PinchflatWeb.Endpoint (connection #PID<0.555393.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.555393.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 43642}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bdc244787fcc78-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.555395.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bdc244787fcc78-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9CJ0LSD90lawQAQdBh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.555393.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 43642}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bdc244787fcc78-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.555393.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 43642}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bdc244787fcc78-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.555395.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 09:59:00.813 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:59:00.933 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:59:30.814 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:00:00.815 [info] {"source":"oban","duration":776,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:00:00.934 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:00:30.816 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:01:00.817 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:01:00.935 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:01:30.818 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:02:00.819 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:02:00.936 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:02:30.820 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:03:00.821 [info] {"source":"oban","duration":646,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:03:00.937 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:03:30.822 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:04:00.823 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:04:00.938 [info] {"source":"oban","duration":357,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:04:30.824 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:05:00.825 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:05:00.939 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:05:30.826 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:06:00.827 [info] {"source":"oban","duration":553,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:06:00.940 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:06:30.828 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:07:00.829 [info] {"source":"oban","duration":578,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:07:00.941 [info] {"source":"oban","duration":162,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:07:30.830 [info] {"source":"oban","duration":544,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:08:00.831 [info] {"source":"oban","duration":486,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:08:00.942 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:08:30.832 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:09:00.833 [info] {"source":"oban","duration":778,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:09:00.943 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:09:30.834 [info] {"source":"oban","duration":673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:10:00.835 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:10:00.944 [info] {"source":"oban","duration":224,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:10:30.836 [info] {"source":"oban","duration":778,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:11:00.837 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:11:00.945 [info] {"source":"oban","duration":167,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:11:30.838 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:12:00.839 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:12:00.946 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:12:30.840 [info] {"source":"oban","duration":775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:13:00.841 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:13:00.947 [info] {"source":"oban","duration":221,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:13:30.842 [info] {"source":"oban","duration":788,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:14:00.843 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:14:00.948 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:14:30.844 [info] {"source":"oban","duration":673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:15:00.845 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:15:00.949 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:15:30.846 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:16:00.847 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:16:00.950 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:16:30.848 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:17:00.849 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:17:00.951 [info] {"source":"oban","duration":160,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:17:30.850 [info] {"source":"oban","duration":794,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:18:00.851 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:18:00.952 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:18:30.852 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:19:00.853 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:19:00.953 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:19:30.854 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:20:00.855 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:20:00.954 [info] {"source":"oban","duration":155,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:20:30.856 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:21:00.857 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:21:00.955 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:21:30.858 [info] {"source":"oban","duration":858,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:22:00.860 [info] {"source":"oban","duration":554,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:22:00.956 [info] {"source":"oban","duration":160,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:22:30.861 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:23:00.862 [info] {"source":"oban","duration":789,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:23:00.957 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:23:30.863 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:23:43.939 [info] {"args":{"id":3},"id":6579,"meta":{},"system_time":1792225423939234516,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:23:43.940 [debug] QUERY OK source="sources" db=0.5ms idle=1631.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:43.940 [debug] QUERY OK source="settings" db=0.1ms idle=1632.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:23:43.954 [debug] QUERY OK source="media_items" db=13.9ms idle=1009.5ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 10:23:43.955 [debug] QUERY OK source="media_items" db=0.4ms idle=22.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 10:23:43.955 [debug] QUERY OK source="media_profiles" db=0.1ms idle=16.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:43.956 [debug] QUERY OK source="settings" db=0.1ms idle=16.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:23:43.956 [debug] QUERY OK source="settings" db=0.1ms idle=15.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:23:43.957 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 10:23:43.957 [debug] Current batch of media processed. Will check again in 1000ms 10:23:43.957 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:23:43.957 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:23:43.957 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:23:43.958 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLQJc0AKwP-an6_0X-ZX9pzXAHn5pQXqTd --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/shows/Livet på gården/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/14/57/1457e79549f77ab92482b252e1316576d3aeb18ee19fc4da135688ab45e7f1b0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:23:44.957 [debug] Current batch of media processed. Will check again in 1000ms 10:23:45.958 [debug] Current batch of media processed. Will check again in 1000ms 10:23:46.959 [debug] Current batch of media processed. Will check again in 1000ms 10:23:47.960 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 1584, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", "id" => "0HQ2lA9SaEw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0HQ2lA9SaEw", "playlist_index" => 1, "timestamp" => 1715241600, "title" => "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "upload_date" => "20240509"} 10:23:47.961 [debug] QUERY OK source="sources" db=0.4ms idle=653.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:47.962 [debug] QUERY OK source="sources" db=0.3ms idle=654.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:47.963 [debug] QUERY OK source="media_items" db=0.6ms idle=654.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-09 08:00:00Z], 3] 10:23:47.966 [debug] QUERY OK source="media_items" db=2.9ms idle=655.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "52cd2839-d8e6-441e-8554-58e955160219", "0HQ2lA9SaEw", false, 1584, false, "https://www.youtube.com/watch?v=0HQ2lA9SaEw", 1, "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", false, false, 3, [], 1, ~U[2024-05-09 08:00:00Z], ~U[2026-10-17 08:23:47Z], ~U[2026-10-17 08:23:47Z], "Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "0HQ2lA9SaEw", 1584, false, "https://www.youtube.com/watch?v=0HQ2lA9SaEw", "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", false, 3, ~U[2024-05-09 08:00:00Z]] 10:23:47.967 [debug] QUERY OK source="sources" db=0.2ms idle=29.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:47.967 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:47.968 [debug] QUERY OK source="media_items" db=0.3ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [225] 10:23:47.968 [debug] Current batch of media processed. Will check again in 1000ms 10:23:48.969 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 1514, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", "id" => "TsAkJcpR_Io", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TsAkJcpR_Io", "playlist_index" => 2, "timestamp" => 1715868032, "title" => "Vi får en hundehvalp | Livet på gården Ep. 2", "upload_date" => "20240516"} 10:23:48.970 [debug] QUERY OK source="sources" db=0.2ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:48.970 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:48.971 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-16 14:00:32Z], 3] 10:23:48.973 [debug] QUERY OK source="media_items" db=1.2ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får en hundehvalp | Livet på gården Ep. 2", "1f29f6a0-b002-4495-8831-71bf3961d0d5", "TsAkJcpR_Io", false, 1514, false, "https://www.youtube.com/watch?v=TsAkJcpR_Io", 2, "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", false, false, 3, [], 1, ~U[2024-05-16 14:00:32Z], ~U[2026-10-17 08:23:48Z], ~U[2026-10-17 08:23:48Z], "I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får en hundehvalp | Livet på gården Ep. 2", "TsAkJcpR_Io", 1514, false, "https://www.youtube.com/watch?v=TsAkJcpR_Io", "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", false, 3, ~U[2024-05-16 14:00:32Z]] 10:23:48.973 [debug] QUERY OK source="sources" db=0.1ms idle=34.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:48.974 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:48.974 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [226] 10:23:48.974 [debug] Current batch of media processed. Will check again in 1000ms 10:23:49.975 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 1483, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", "id" => "mzYiI1eVSe8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mzYiI1eVSe8", "playlist_index" => 3, "timestamp" => 1716472844, "title" => "Vi graver ud i huset | Livet på gården Ep.3", "upload_date" => "20240523"} 10:23:49.976 [debug] QUERY OK source="sources" db=0.3ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:49.976 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:49.977 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-23 14:00:44Z], 3] 10:23:49.979 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi graver ud i huset | Livet på gården Ep.3", "e9c82263-2e0d-45db-80ec-8f7727ffe836", "mzYiI1eVSe8", false, 1483, false, "https://www.youtube.com/watch?v=mzYiI1eVSe8", 3, "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", false, false, 3, [], 1, ~U[2024-05-23 14:00:44Z], ~U[2026-10-17 08:23:49Z], ~U[2026-10-17 08:23:49Z], "I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi graver ud i huset | Livet på gården Ep.3", "mzYiI1eVSe8", 1483, false, "https://www.youtube.com/watch?v=mzYiI1eVSe8", "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", false, 3, ~U[2024-05-23 14:00:44Z]] 10:23:49.979 [debug] QUERY OK source="sources" db=0.1ms idle=39.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:49.979 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:49.980 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [227] 10:23:49.980 [debug] Current batch of media processed. Will check again in 1000ms 10:23:50.981 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 2520, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", "id" => "0jEgoy_T4E4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0jEgoy_T4E4", "playlist_index" => 4, "timestamp" => 1717077602, "title" => "En hest i stuen og døde høns | Livet på gården Ep. 4", "upload_date" => "20240530"} 10:23:50.982 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:50.983 [debug] QUERY OK source="sources" db=0.5ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:50.984 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-30 14:00:02Z], 3] 10:23:50.986 [debug] QUERY OK source="media_items" db=1.3ms idle=1004.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "En hest i stuen og døde høns | Livet på gården Ep. 4", "8abfce5e-63b8-4948-87f5-c80765411e71", "0jEgoy_T4E4", false, 2520, false, "https://www.youtube.com/watch?v=0jEgoy_T4E4", 4, "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", false, false, 3, [], 1, ~U[2024-05-30 14:00:02Z], ~U[2026-10-17 08:23:50Z], ~U[2026-10-17 08:23:50Z], "I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "En hest i stuen og døde høns | Livet på gården Ep. 4", "0jEgoy_T4E4", 2520, false, "https://www.youtube.com/watch?v=0jEgoy_T4E4", "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", false, 3, ~U[2024-05-30 14:00:02Z]] 10:23:50.986 [debug] QUERY OK source="sources" db=0.2ms idle=45.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:50.987 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:50.987 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [228] 10:23:50.988 [debug] Current batch of media processed. Will check again in 1000ms 10:23:51.988 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 2357, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", "id" => "w_MEeum-cxQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=w_MEeum-cxQ", "playlist_index" => 5, "timestamp" => 1717682457, "title" => "Vi får kyllinger og køkken | Livet på gården Ep.5", "upload_date" => "20240606"} 10:23:51.989 [debug] QUERY OK source="sources" db=0.3ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:51.989 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:51.990 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-06 14:00:57Z], 3] 10:23:51.992 [debug] QUERY OK source="media_items" db=1.8ms idle=1002.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får kyllinger og køkken | Livet på gården Ep.5", "766b8a91-b259-4988-9ad1-6fe5303aa116", "w_MEeum-cxQ", false, 2357, false, "https://www.youtube.com/watch?v=w_MEeum-cxQ", 5, "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", false, false, 3, [], 1, ~U[2024-06-06 14:00:57Z], ~U[2026-10-17 08:23:51Z], ~U[2026-10-17 08:23:51Z], "I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får kyllinger og køkken | Livet på gården Ep.5", "w_MEeum-cxQ", 2357, false, "https://www.youtube.com/watch?v=w_MEeum-cxQ", "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", false, 3, ~U[2024-06-06 14:00:57Z]] 10:23:51.993 [debug] QUERY OK source="sources" db=0.1ms idle=50.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:51.993 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:51.994 [debug] QUERY OK source="media_items" db=0.2ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [229] 10:23:51.994 [debug] Current batch of media processed. Will check again in 1000ms 10:23:52.994 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1911, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", "id" => "LgpqgWbzuiM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LgpqgWbzuiM", "playlist_index" => 6, "timestamp" => 1718287214, "title" => "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "upload_date" => "20240613"} 10:23:52.995 [debug] QUERY OK source="sources" db=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:52.995 [debug] QUERY OK source="sources" db=0.1ms idle=1002.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:52.996 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-13 14:00:14Z], 3] 10:23:52.998 [debug] QUERY OK source="media_items" db=1.7ms idle=1002.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "6ae33ce4-6ff7-4a4c-ac78-c6fd0e6a4c4e", "LgpqgWbzuiM", false, 1911, false, "https://www.youtube.com/watch?v=LgpqgWbzuiM", 6, "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", false, false, 3, [], 1, ~U[2024-06-13 14:00:14Z], ~U[2026-10-17 08:23:52Z], ~U[2026-10-17 08:23:52Z], "I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "LgpqgWbzuiM", 1911, false, "https://www.youtube.com/watch?v=LgpqgWbzuiM", "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", false, 3, ~U[2024-06-13 14:00:14Z]] 10:23:52.999 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=55.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:52.999 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:53.000 [debug] QUERY OK source="media_items" db=0.2ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [230] 10:23:53.000 [debug] Current batch of media processed. Will check again in 1000ms 10:23:54.000 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 1808, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", "id" => "tPMYODqzWfI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tPMYODqzWfI", "playlist_index" => 7, "timestamp" => 1718892044, "title" => "Vores heste stikker af | Livet på gården Ep. 7", "upload_date" => "20240620"} 10:23:54.001 [debug] QUERY OK source="sources" db=0.2ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:54.002 [debug] QUERY OK source="sources" db=0.5ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:54.003 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-20 14:00:44Z], 3] 10:23:54.005 [debug] QUERY OK source="media_items" db=1.8ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vores heste stikker af | Livet på gården Ep. 7", "ad82c072-0083-424e-8760-1d72c5036258", "tPMYODqzWfI", false, 1808, false, "https://www.youtube.com/watch?v=tPMYODqzWfI", 7, "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", false, false, 3, [], 1, ~U[2024-06-20 14:00:44Z], ~U[2026-10-17 08:23:54Z], ~U[2026-10-17 08:23:54Z], "I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vores heste stikker af | Livet på gården Ep. 7", "tPMYODqzWfI", 1808, false, "https://www.youtube.com/watch?v=tPMYODqzWfI", "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", false, 3, ~U[2024-06-20 14:00:44Z]] 10:23:54.006 [debug] QUERY OK source="sources" db=0.1ms idle=61.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:54.006 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=4.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:54.007 [debug] QUERY OK source="media_items" db=0.2ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [231] 10:23:54.007 [debug] Current batch of media processed. Will check again in 1000ms 10:23:55.007 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 2043, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", "id" => "5w4Zkb-V2fE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5w4Zkb-V2fE", "playlist_index" => 8, "timestamp" => 1719496803, "title" => "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "upload_date" => "20240627"} 10:23:55.008 [debug] QUERY OK source="sources" db=0.4ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:55.009 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:55.010 [debug] QUERY OK source="media_items" db=0.6ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-27 14:00:03Z], 3] 10:23:55.012 [debug] QUERY OK source="media_items" db=1.8ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "209d22ba-e195-4422-88ab-54da91d67fcb", "5w4Zkb-V2fE", false, 2043, false, "https://www.youtube.com/watch?v=5w4Zkb-V2fE", 8, "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", false, false, 3, [], 1, ~U[2024-06-27 14:00:03Z], ~U[2026-10-17 08:23:55Z], ~U[2026-10-17 08:23:55Z], "I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "5w4Zkb-V2fE", 2043, false, "https://www.youtube.com/watch?v=5w4Zkb-V2fE", "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", false, 3, ~U[2024-06-27 14:00:03Z]] 10:23:55.013 [debug] QUERY OK source="sources" db=0.3ms idle=67.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:55.013 [debug] QUERY OK source="media_profiles" db=0.5ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:55.014 [debug] QUERY OK source="media_items" db=0.4ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [232] 10:23:55.014 [debug] Current batch of media processed. Will check again in 1000ms 10:23:56.015 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "duration" => 2059, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", "id" => "KotEK3OaF80", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KotEK3OaF80", "playlist_index" => 9, "timestamp" => 1720101614, "title" => "House tour | Livet på gården Ep. 9", "upload_date" => "20240704"} 10:23:56.016 [debug] QUERY OK source="sources" db=0.2ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:56.016 [debug] QUERY OK source="sources" db=0.1ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:56.017 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-04 14:00:14Z], 3] 10:23:56.024 [debug] QUERY OK source="media_items" db=6.5ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "House tour | Livet på gården Ep. 9", "1d779d5c-2603-4df2-bd55-1cd2583dae38", "KotEK3OaF80", false, 2059, false, "https://www.youtube.com/watch?v=KotEK3OaF80", 9, "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", false, false, 3, [], 1, ~U[2024-07-04 14:00:14Z], ~U[2026-10-17 08:23:56Z], ~U[2026-10-17 08:23:56Z], "I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "House tour | Livet på gården Ep. 9", "KotEK3OaF80", 2059, false, "https://www.youtube.com/watch?v=KotEK3OaF80", "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", false, 3, ~U[2024-07-04 14:00:14Z]] 10:23:56.025 [debug] QUERY OK source="sources" db=0.2ms idle=78.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:56.025 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:56.025 [debug] QUERY OK source="media_items" db=0.2ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [233] 10:23:56.026 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1462, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", "id" => "ACbhu-bCkCs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ACbhu-bCkCs", "playlist_index" => 10, "timestamp" => 1721311209, "title" => "Måren har dræbt vores høns | Livet på gården Ep. 10", "upload_date" => "20240718"} 10:23:56.026 [debug] QUERY OK source="sources" db=0.2ms idle=8.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:56.027 [debug] QUERY OK source="sources" db=0.1ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:56.027 [debug] QUERY OK source="media_items" db=0.4ms idle=2.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-18 14:00:09Z], 3] 10:23:56.030 [debug] QUERY OK source="media_items" db=1.7ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Måren har dræbt vores høns | Livet på gården Ep. 10", "61cd61f4-c638-4697-a768-c4a5932c72ab", "ACbhu-bCkCs", false, 1462, false, "https://www.youtube.com/watch?v=ACbhu-bCkCs", 10, "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", false, false, 3, [], 1, ~U[2024-07-18 14:00:09Z], ~U[2026-10-17 08:23:56Z], ~U[2026-10-17 08:23:56Z], "I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Måren har dræbt vores høns | Livet på gården Ep. 10", "ACbhu-bCkCs", 1462, false, "https://www.youtube.com/watch?v=ACbhu-bCkCs", "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", false, 3, ~U[2024-07-18 14:00:09Z]] 10:23:56.030 [debug] QUERY OK source="sources" db=0.1ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:56.030 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:56.031 [debug] QUERY OK source="media_items" db=0.3ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [234] 10:23:56.031 [debug] Current batch of media processed. Will check again in 1000ms 10:23:57.032 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1666, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", "id" => "Sk2CUC0pUsw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Sk2CUC0pUsw", "playlist_index" => 11, "timestamp" => 1721916021, "title" => "Nye høns og havearbejde | Livet på gården Ep. 11", "upload_date" => "20240725"} 10:23:57.033 [debug] QUERY OK source="sources" db=0.3ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:57.034 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:57.035 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1003.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-25 14:00:21Z], 3] 10:23:57.038 [debug] QUERY OK source="media_items" db=2.2ms idle=1004.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nye høns og havearbejde | Livet på gården Ep. 11", "572d33d1-2658-4eaa-a5fd-4ce738527bc4", "Sk2CUC0pUsw", false, 1666, false, "https://www.youtube.com/watch?v=Sk2CUC0pUsw", 11, "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", false, false, 3, [], 1, ~U[2024-07-25 14:00:21Z], ~U[2026-10-17 08:23:57Z], ~U[2026-10-17 08:23:57Z], "I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nye høns og havearbejde | Livet på gården Ep. 11", "Sk2CUC0pUsw", 1666, false, "https://www.youtube.com/watch?v=Sk2CUC0pUsw", "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", false, 3, ~U[2024-07-25 14:00:21Z]] 10:23:57.039 [debug] QUERY OK source="sources" db=0.6ms idle=91.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:57.040 [debug] QUERY OK source="media_profiles" db=0.3ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:57.040 [debug] QUERY OK source="media_items" db=0.2ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [235] 10:23:57.041 [debug] Current batch of media processed. Will check again in 1000ms 10:23:58.041 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1747, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", "id" => "npE-BTzFMWc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=npE-BTzFMWc", "playlist_index" => 12, "timestamp" => 1722520842, "title" => "Heste og højbede | Livet på gården Ep. 12", "upload_date" => "20240801"} 10:23:58.042 [debug] QUERY OK source="sources" db=0.2ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:58.042 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:58.043 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-01 14:00:42Z], 3] 10:23:58.044 [debug] QUERY OK source="media_items" db=1.0ms idle=1002.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Heste og højbede | Livet på gården Ep. 12", "e2ae492e-afbb-45fb-84c4-0c07a588b237", "npE-BTzFMWc", false, 1747, false, "https://www.youtube.com/watch?v=npE-BTzFMWc", 12, "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", false, false, 3, [], 1, ~U[2024-08-01 14:00:42Z], ~U[2026-10-17 08:23:58Z], ~U[2026-10-17 08:23:58Z], "I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Heste og højbede | Livet på gården Ep. 12", "npE-BTzFMWc", 1747, false, "https://www.youtube.com/watch?v=npE-BTzFMWc", "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", false, 3, ~U[2024-08-01 14:00:42Z]] 10:23:58.045 [debug] QUERY OK source="sources" db=0.1ms idle=95.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:58.045 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:58.046 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [236] 10:23:58.046 [debug] Current batch of media processed. Will check again in 1000ms 10:23:59.047 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1645, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", "id" => "mBkf-1EFsdE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mBkf-1EFsdE", "playlist_index" => 13, "timestamp" => 1723125644, "title" => "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "upload_date" => "20240808"} 10:23:59.048 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:23:59.048 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:59.049 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-08 14:00:44Z], 3] 10:23:59.050 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "e391b7cc-f258-4f51-b691-fa5d9512cd4e", "mBkf-1EFsdE", false, 1645, false, "https://www.youtube.com/watch?v=mBkf-1EFsdE", 13, "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", false, false, 3, [], 1, ~U[2024-08-08 14:00:44Z], ~U[2026-10-17 08:23:59Z], ~U[2026-10-17 08:23:59Z], "I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "mBkf-1EFsdE", 1645, false, "https://www.youtube.com/watch?v=mBkf-1EFsdE", "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", false, 3, ~U[2024-08-08 14:00:44Z]] 10:23:59.051 [debug] QUERY OK source="sources" db=0.2ms idle=100.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:23:59.051 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:23:59.052 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [237] 10:23:59.052 [debug] Current batch of media processed. Will check again in 1000ms 10:24:00.053 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1651, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", "id" => "EKIo-bTmT5I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=EKIo-bTmT5I", "playlist_index" => 14, "timestamp" => 1723730416, "title" => "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "upload_date" => "20240815"} 10:24:00.053 [debug] QUERY OK source="sources" db=0.4ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:00.054 [debug] QUERY OK source="sources" db=0.5ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:00.055 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-15 14:00:16Z], 3] 10:24:00.058 [debug] QUERY OK source="media_items" db=1.8ms idle=1004.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "affa3850-be55-4f42-865d-f89fe41cd65b", "EKIo-bTmT5I", false, 1651, false, "https://www.youtube.com/watch?v=EKIo-bTmT5I", 14, "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", false, false, 3, [], 1, ~U[2024-08-15 14:00:16Z], ~U[2026-10-17 08:24:00Z], ~U[2026-10-17 08:24:00Z], "I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "EKIo-bTmT5I", 1651, false, "https://www.youtube.com/watch?v=EKIo-bTmT5I", "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", false, 3, ~U[2024-08-15 14:00:16Z]] 10:24:00.059 [debug] QUERY OK source="sources" db=0.4ms idle=107.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:00.059 [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] 10:24:00.060 [debug] QUERY OK source="media_items" db=0.3ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [238] 10:24:00.060 [debug] Current batch of media processed. Will check again in 1000ms 10:24:00.864 [info] {"source":"oban","duration":738,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:24:00.958 [info] {"source":"oban","duration":92,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:24:01.061 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1505, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", "id" => "tVgdZ9ycitU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tVgdZ9ycitU", "playlist_index" => 15, "timestamp" => 1724335253, "title" => "Diagnose og dræbersnegle | Livet på gården Ep. 15", "upload_date" => "20240822"} 10:24:01.062 [debug] QUERY OK source="sources" db=0.2ms idle=1002.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:01.062 [debug] QUERY OK source="sources" db=0.1ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:01.063 [debug] QUERY OK source="media_items" db=0.4ms idle=198.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-22 14:00:53Z], 3] 10:24:01.064 [debug] QUERY OK source="media_items" db=1.1ms idle=111.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Diagnose og dræbersnegle | Livet på gården Ep. 15", "93ff84a8-f885-45ea-9901-def4d075d2f2", "tVgdZ9ycitU", false, 1505, false, "https://www.youtube.com/watch?v=tVgdZ9ycitU", 15, "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", false, false, 3, [], 1, ~U[2024-08-22 14:00:53Z], ~U[2026-10-17 08:24:01Z], ~U[2026-10-17 08:24:01Z], "I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Diagnose og dræbersnegle | Livet på gården Ep. 15", "tVgdZ9ycitU", 1505, false, "https://www.youtube.com/watch?v=tVgdZ9ycitU", "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", false, 3, ~U[2024-08-22 14:00:53Z]] 10:24:01.065 [debug] QUERY OK source="sources" db=0.3ms idle=106.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:01.066 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:01.066 [debug] QUERY OK source="media_items" db=0.3ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [239] 10:24:01.066 [debug] Current batch of media processed. Will check again in 1000ms 10:24:02.067 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1871, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", "id" => "X-mJfUiB8oE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=X-mJfUiB8oE", "playlist_index" => 16, "timestamp" => 1724940026, "title" => "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "upload_date" => "20240829"} 10:24:02.068 [debug] QUERY OK source="sources" db=0.3ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:02.068 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:02.069 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-29 14:00:26Z], 3] 10:24:02.071 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "e7a29c63-f14a-4198-8592-22d3203bc9b5", "X-mJfUiB8oE", false, 1871, false, "https://www.youtube.com/watch?v=X-mJfUiB8oE", 16, "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", false, false, 3, [], 1, ~U[2024-08-29 14:00:26Z], ~U[2026-10-17 08:24:02Z], ~U[2026-10-17 08:24:02Z], "I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "X-mJfUiB8oE", 1871, false, "https://www.youtube.com/watch?v=X-mJfUiB8oE", "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", false, 3, ~U[2024-08-29 14:00:26Z]] 10:24:02.071 [debug] QUERY OK source="sources" db=0.2ms idle=118.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:02.072 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:02.072 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [240] 10:24:02.072 [debug] Current batch of media processed. Will check again in 1000ms 10:24:03.073 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1643, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", "id" => "ACPmnpI3fvU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ACPmnpI3fvU", "playlist_index" => 17, "timestamp" => 1726754408, "title" => "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "upload_date" => "20240919"} 10:24:03.074 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:03.075 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:03.076 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-19 14:00:08Z], 3] 10:24:03.078 [debug] QUERY OK source="media_items" db=1.3ms idle=1004.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "c1d3c4a7-c569-4a3e-858e-9d99caf87991", "ACPmnpI3fvU", false, 1643, false, "https://www.youtube.com/watch?v=ACPmnpI3fvU", 17, "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", false, false, 3, [], 1, ~U[2024-09-19 14:00:08Z], ~U[2026-10-17 08:24:03Z], ~U[2026-10-17 08:24:03Z], "I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "ACPmnpI3fvU", 1643, false, "https://www.youtube.com/watch?v=ACPmnpI3fvU", "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", false, 3, ~U[2024-09-19 14:00:08Z]] 10:24:03.078 [debug] QUERY OK source="sources" db=0.2ms idle=124.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:03.079 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:03.079 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [241] 10:24:03.080 [debug] Current batch of media processed. Will check again in 1000ms 10:24:04.080 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "duration" => 1387, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", "id" => "yzoiqawrf90", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yzoiqawrf90", "playlist_index" => 18, "timestamp" => 1726149663, "title" => "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "upload_date" => "20240912"} 10:24:04.081 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:04.081 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:04.082 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-12 14:01:03Z], 3] 10:24:04.083 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "d16e0aed-8c11-4661-a86e-1b3e86013a16", "yzoiqawrf90", false, 1387, false, "https://www.youtube.com/watch?v=yzoiqawrf90", 18, "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", false, false, 3, [], 1, ~U[2024-09-12 14:01:03Z], ~U[2026-10-17 08:24:04Z], ~U[2026-10-17 08:24:04Z], "Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "yzoiqawrf90", 1387, false, "https://www.youtube.com/watch?v=yzoiqawrf90", "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", false, 3, ~U[2024-09-12 14:01:03Z]] 10:24:04.084 [debug] QUERY OK source="sources" db=0.2ms idle=128.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:04.085 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.3ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:04.085 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [242] 10:24:04.085 [debug] Current batch of media processed. Will check again in 1000ms 10:24:05.086 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1742, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", "id" => "UlJfAh2C0fE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UlJfAh2C0fE", "playlist_index" => 19, "timestamp" => 1727964034, "title" => "En hel dag på dyreinternat | Livet på gården Ep. 21", "upload_date" => "20241003"} 10:24:05.087 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:05.087 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:05.088 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-03 14:00:34Z], 3] 10:24:05.090 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En hel dag på dyreinternat | Livet på gården Ep. 21", "770d9660-c19e-439c-b6ce-4945250e32d1", "UlJfAh2C0fE", false, 1742, false, "https://www.youtube.com/watch?v=UlJfAh2C0fE", 19, "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", false, false, 3, [], 1, ~U[2024-10-03 14:00:34Z], ~U[2026-10-17 08:24:05Z], ~U[2026-10-17 08:24:05Z], "I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En hel dag på dyreinternat | Livet på gården Ep. 21", "UlJfAh2C0fE", 1742, false, "https://www.youtube.com/watch?v=UlJfAh2C0fE", "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", false, 3, ~U[2024-10-03 14:00:34Z]] 10:24:05.090 [debug] QUERY OK source="sources" db=0.2ms idle=132.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:05.090 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:05.091 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [243] 10:24:05.091 [debug] Current batch of media processed. Will check again in 1000ms 10:24:06.092 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1514, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", "id" => "5fUjlgO0xVU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5fUjlgO0xVU", "playlist_index" => 20, "timestamp" => 1728568809, "title" => "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "upload_date" => "20241010"} 10:24:06.093 [debug] QUERY OK source="sources" db=0.3ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:06.093 [debug] QUERY OK source="sources" db=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:06.094 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-10 14:00:09Z], 3] 10:24:06.096 [debug] QUERY OK source="media_items" db=1.3ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "b1f08a84-7eba-4f74-ba6b-7354ef04a8cd", "5fUjlgO0xVU", false, 1514, false, "https://www.youtube.com/watch?v=5fUjlgO0xVU", 20, "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", false, false, 3, [], 1, ~U[2024-10-10 14:00:09Z], ~U[2026-10-17 08:24:06Z], ~U[2026-10-17 08:24:06Z], "I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "5fUjlgO0xVU", 1514, false, "https://www.youtube.com/watch?v=5fUjlgO0xVU", "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", false, 3, ~U[2024-10-10 14:00:09Z]] 10:24:06.096 [debug] QUERY OK source="sources" db=0.1ms idle=137.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:06.097 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:06.097 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [244] 10:24:06.098 [debug] Current batch of media processed. Will check again in 1000ms 10:24:07.098 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1892, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", "id" => "1FSZw5q8Zaw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1FSZw5q8Zaw", "playlist_index" => 21, "timestamp" => 1729173604, "title" => "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "upload_date" => "20241017"} 10:24:07.099 [debug] QUERY OK source="sources" db=0.2ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:07.099 [debug] QUERY OK source="sources" db=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:07.100 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-17 14:00:04Z], 3] 10:24:07.102 [debug] QUERY OK source="media_items" db=1.0ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "b369f48d-b250-4fb2-abd8-40642cb3b463", "1FSZw5q8Zaw", false, 1892, false, "https://www.youtube.com/watch?v=1FSZw5q8Zaw", 21, "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", false, false, 3, [], 1, ~U[2024-10-17 14:00:04Z], ~U[2026-10-17 08:24:07Z], ~U[2026-10-17 08:24:07Z], "I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "1FSZw5q8Zaw", 1892, false, "https://www.youtube.com/watch?v=1FSZw5q8Zaw", "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", false, 3, ~U[2024-10-17 14:00:04Z]] 10:24:07.102 [debug] QUERY OK source="sources" db=0.1ms idle=142.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:07.103 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:07.103 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [245] 10:24:07.103 [debug] Current batch of media processed. Will check again in 1000ms 10:24:08.104 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 2101, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", "id" => "6vrGogQTGw8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6vrGogQTGw8", "playlist_index" => 22, "timestamp" => 1729778405, "title" => "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "upload_date" => "20241024"} 10:24:08.105 [debug] QUERY OK source="sources" db=0.3ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:08.106 [debug] QUERY OK source="sources" db=0.3ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:08.107 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-24 14:00:05Z], 3] 10:24:08.108 [debug] QUERY OK source="media_items" db=0.9ms idle=1004.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "39be2414-fb53-42f3-b04d-578ff2dee6eb", "6vrGogQTGw8", false, 2101, false, "https://www.youtube.com/watch?v=6vrGogQTGw8", 22, "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", false, false, 3, [], 1, ~U[2024-10-24 14:00:05Z], ~U[2026-10-17 08:24:08Z], ~U[2026-10-17 08:24:08Z], "I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "6vrGogQTGw8", 2101, false, "https://www.youtube.com/watch?v=6vrGogQTGw8", "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", false, 3, ~U[2024-10-24 14:00:05Z]] 10:24:08.109 [debug] QUERY OK source="sources" db=0.4ms idle=147.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:08.110 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:08.111 [debug] QUERY OK source="media_items" db=0.2ms queue=0.4ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [246] 10:24:08.111 [debug] Current batch of media processed. Will check again in 1000ms 10:24:09.111 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1195, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", "id" => "fszG4EUNQSw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fszG4EUNQSw", "playlist_index" => 23, "timestamp" => 1729954642, "title" => "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "upload_date" => "20241026"} 10:24:09.112 [debug] QUERY OK source="sources" db=0.3ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:09.113 [debug] QUERY OK source="sources" db=0.5ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:09.114 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-26 14:57:22Z], 3] 10:24:09.116 [debug] QUERY OK source="media_items" db=1.4ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "f8a7e46c-2498-49b4-a60e-896573fa911f", "fszG4EUNQSw", false, 1195, false, "https://www.youtube.com/watch?v=fszG4EUNQSw", 23, "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", false, false, 3, [], 1, ~U[2024-10-26 14:57:22Z], ~U[2026-10-17 08:24:09Z], ~U[2026-10-17 08:24:09Z], "Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "fszG4EUNQSw", 1195, false, "https://www.youtube.com/watch?v=fszG4EUNQSw", "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", false, 3, ~U[2024-10-26 14:57:22Z]] 10:24:09.116 [debug] QUERY OK source="sources" db=0.1ms idle=154.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:09.117 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:09.118 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [247] 10:24:09.118 [debug] Current batch of media processed. Will check again in 1000ms 10:24:10.118 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 845, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", "id" => "knLNbZN-U8I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=knLNbZN-U8I", "playlist_index" => 24, "timestamp" => 1730386862, "title" => "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "upload_date" => "20241031"} 10:24:10.119 [debug] QUERY OK source="sources" db=0.3ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:10.119 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:10.120 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-31 15:01:02Z], 3] 10:24:10.121 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "749cfd8c-e9e7-45f2-aacf-0baee9509d08", "knLNbZN-U8I", false, 845, false, "https://www.youtube.com/watch?v=knLNbZN-U8I", 24, "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", false, false, 3, [], 1, ~U[2024-10-31 15:01:02Z], ~U[2026-10-17 08:24:10Z], ~U[2026-10-17 08:24:10Z], "I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "knLNbZN-U8I", 845, false, "https://www.youtube.com/watch?v=knLNbZN-U8I", "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", false, 3, ~U[2024-10-31 15:01:02Z]] 10:24:10.122 [debug] QUERY OK source="sources" db=0.2ms idle=158.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:10.122 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:10.123 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [248] 10:24:10.123 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1621, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", "id" => "JyiMi5ofXPw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JyiMi5ofXPw", "playlist_index" => 25, "timestamp" => 1730991619, "title" => "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "upload_date" => "20241107"} 10:24:10.124 [debug] QUERY OK source="sources" db=0.2ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:10.124 [debug] QUERY OK source="sources" db=0.1ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:10.125 [debug] QUERY OK source="media_items" db=0.4ms idle=2.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-07 15:00:19Z], 3] 10:24:10.128 [debug] QUERY OK source="media_items" db=2.4ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "bdf1fc79-3b5a-4454-9dc6-da4af5535f7f", "JyiMi5ofXPw", false, 1621, false, "https://www.youtube.com/watch?v=JyiMi5ofXPw", 25, "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", false, false, 3, [], 1, ~U[2024-11-07 15:00:19Z], ~U[2026-10-17 08:24:10Z], ~U[2026-10-17 08:24:10Z], "I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "JyiMi5ofXPw", 1621, false, "https://www.youtube.com/watch?v=JyiMi5ofXPw", "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", false, 3, ~U[2024-11-07 15:00:19Z]] 10:24:10.128 [debug] QUERY OK source="sources" db=0.2ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:10.128 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:10.129 [debug] QUERY OK source="media_items" db=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [249] 10:24:10.129 [debug] Current batch of media processed. Will check again in 1000ms 10:24:11.130 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1506, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", "id" => "jEs2qt9f4cQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jEs2qt9f4cQ", "playlist_index" => 26, "timestamp" => 1731596451, "title" => "Døde grise og kæmpe krise | Livet på gården Ep. 28", "upload_date" => "20241114"} 10:24:11.131 [debug] QUERY OK source="sources" db=0.3ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:11.131 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:11.132 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-14 15:00:51Z], 3] 10:24:11.133 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Døde grise og kæmpe krise | Livet på gården Ep. 28", "e5658a98-f1c3-4ff1-ba55-89d8f0aec153", "jEs2qt9f4cQ", false, 1506, false, "https://www.youtube.com/watch?v=jEs2qt9f4cQ", 26, "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", false, false, 3, [], 1, ~U[2024-11-14 15:00:51Z], ~U[2026-10-17 08:24:11Z], ~U[2026-10-17 08:24:11Z], "I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Døde grise og kæmpe krise | Livet på gården Ep. 28", "jEs2qt9f4cQ", 1506, false, "https://www.youtube.com/watch?v=jEs2qt9f4cQ", "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", false, 3, ~U[2024-11-14 15:00:51Z]] 10:24:11.134 [debug] QUERY OK source="sources" db=0.1ms idle=168.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:11.134 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:11.135 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [250] 10:24:11.135 [debug] Current batch of media processed. Will check again in 1000ms 10:24:12.135 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1529, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", "id" => "RfFqKyedfAE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RfFqKyedfAE", "playlist_index" => 27, "timestamp" => 1732201226, "title" => "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "upload_date" => "20241121"} 10:24:12.136 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:12.136 [debug] QUERY OK source="sources" db=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:12.137 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-21 15:00:26Z], 3] 10:24:12.138 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "47c9b303-9693-43cb-a66d-83192d76bebc", "RfFqKyedfAE", false, 1529, false, "https://www.youtube.com/watch?v=RfFqKyedfAE", 27, "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", false, false, 3, [], 1, ~U[2024-11-21 15:00:26Z], ~U[2026-10-17 08:24:12Z], ~U[2026-10-17 08:24:12Z], "I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "RfFqKyedfAE", 1529, false, "https://www.youtube.com/watch?v=RfFqKyedfAE", "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", false, 3, ~U[2024-11-21 15:00:26Z]] 10:24:12.139 [debug] QUERY OK source="sources" db=0.1ms idle=172.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:12.139 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:12.140 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [251] 10:24:12.140 [debug] Current batch of media processed. Will check again in 1000ms 10:24:13.141 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1708, "filename" => "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", "id" => "X73rI43iuD4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=X73rI43iuD4", "playlist_index" => 28, "timestamp" => 1732806036, "title" => "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "upload_date" => "20241128"} 10:24:13.142 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:13.142 [debug] QUERY OK source="sources" db=0.1ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:13.143 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-28 15:00:36Z], 3] 10:24:13.145 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "6153c1ba-d446-4271-aa01-cdca1576fef8", "X73rI43iuD4", false, 1708, false, "https://www.youtube.com/watch?v=X73rI43iuD4", 28, "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", false, false, 3, [], 1, ~U[2024-11-28 15:00:36Z], ~U[2026-10-17 08:24:13Z], ~U[2026-10-17 08:24:13Z], "I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "X73rI43iuD4", 1708, false, "https://www.youtube.com/watch?v=X73rI43iuD4", "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", false, 3, ~U[2024-11-28 15:00:36Z]] 10:24:13.145 [debug] QUERY OK source="sources" db=0.2ms idle=178.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:13.145 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:13.146 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [252] 10:24:13.146 [debug] Current batch of media processed. Will check again in 1000ms 10:24:14.147 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1586, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", "id" => "mdvG-5UJYRw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mdvG-5UJYRw", "playlist_index" => 29, "timestamp" => 1735830053, "title" => "Vores grise stikker af | Livet på gården Ep. 31", "upload_date" => "20250102"} 10:24:14.148 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:14.148 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:14.149 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-02 15:00:53Z], 3] 10:24:14.150 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores grise stikker af | Livet på gården Ep. 31", "ec2dce8e-e15c-48a7-a561-5e505f478b70", "mdvG-5UJYRw", false, 1586, false, "https://www.youtube.com/watch?v=mdvG-5UJYRw", 29, "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", false, false, 3, [], 1, ~U[2025-01-02 15:00:53Z], ~U[2026-10-17 08:24:14Z], ~U[2026-10-17 08:24:14Z], "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores grise stikker af | Livet på gården Ep. 31", "mdvG-5UJYRw", 1586, false, "https://www.youtube.com/watch?v=mdvG-5UJYRw", "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", false, 3, ~U[2025-01-02 15:00:53Z]] 10:24:14.151 [debug] QUERY OK source="sources" db=0.3ms idle=182.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:14.152 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:14.152 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [253] 10:24:14.152 [debug] Current batch of media processed. Will check again in 1000ms 10:24:15.153 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1189, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", "id" => "in68bPvRI18", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=in68bPvRI18", "playlist_index" => 30, "timestamp" => 1736434862, "title" => "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "upload_date" => "20250109"} 10:24:15.154 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:15.155 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:15.156 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-09 15:01:02Z], 3] 10:24:15.158 [debug] QUERY OK source="media_items" db=1.5ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "6080fc90-a716-46fc-af90-77e60e4750ba", "in68bPvRI18", false, 1189, false, "https://www.youtube.com/watch?v=in68bPvRI18", 30, "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", false, false, 3, [], 1, ~U[2025-01-09 15:01:02Z], ~U[2026-10-17 08:24:15Z], ~U[2026-10-17 08:24:15Z], "I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "in68bPvRI18", 1189, false, "https://www.youtube.com/watch?v=in68bPvRI18", "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", false, 3, ~U[2025-01-09 15:01:02Z]] 10:24:15.158 [debug] QUERY OK source="sources" db=0.2ms idle=189.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:15.159 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:15.160 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [254] 10:24:15.160 [debug] Current batch of media processed. Will check again in 1000ms 10:24:16.160 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1320, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", "id" => "7eqGNG6x48o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7eqGNG6x48o", "playlist_index" => 31, "timestamp" => 1737039613, "title" => "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "upload_date" => "20250116"} 10:24:16.161 [debug] QUERY OK source="sources" db=0.3ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:16.162 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:16.162 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-16 15:00:13Z], 3] 10:24:16.165 [debug] QUERY OK source="media_items" db=2.1ms idle=1002.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "4f84570f-d42d-45df-ab5c-0b9b5022df9d", "7eqGNG6x48o", false, 1320, false, "https://www.youtube.com/watch?v=7eqGNG6x48o", 31, "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", false, false, 3, [], 1, ~U[2025-01-16 15:00:13Z], ~U[2026-10-17 08:24:16Z], ~U[2026-10-17 08:24:16Z], "Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "7eqGNG6x48o", 1320, false, "https://www.youtube.com/watch?v=7eqGNG6x48o", "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", false, 3, ~U[2025-01-16 15:00:13Z]] 10:24:16.165 [debug] QUERY OK source="sources" db=0.2ms idle=195.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:16.166 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:16.167 [debug] QUERY OK source="media_items" db=0.2ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [255] 10:24:16.167 [debug] Current batch of media processed. Will check again in 1000ms 10:24:17.167 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1554, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", "id" => "DHmTZSb2QAg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DHmTZSb2QAg", "playlist_index" => 32, "timestamp" => 1737644414, "title" => "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "upload_date" => "20250123"} 10:24:17.168 [debug] QUERY OK source="sources" db=0.3ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:17.168 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:17.169 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-23 15:00:14Z], 3] 10:24:17.172 [debug] QUERY OK source="media_items" db=1.7ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "97f294eb-1498-4b6d-8f1b-e0c2a5f548d5", "DHmTZSb2QAg", false, 1554, false, "https://www.youtube.com/watch?v=DHmTZSb2QAg", 32, "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", false, false, 3, [], 1, ~U[2025-01-23 15:00:14Z], ~U[2026-10-17 08:24:17Z], ~U[2026-10-17 08:24:17Z], "I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "DHmTZSb2QAg", 1554, false, "https://www.youtube.com/watch?v=DHmTZSb2QAg", "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", false, 3, ~U[2025-01-23 15:00:14Z]] 10:24:17.172 [debug] QUERY OK source="sources" db=0.2ms idle=200.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:17.173 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:17.173 [debug] QUERY OK source="media_items" db=0.3ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [287] 10:24:17.173 [debug] Current batch of media processed. Will check again in 1000ms 10:24:18.174 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1577, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", "id" => "06C0dkPjHIU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06C0dkPjHIU", "playlist_index" => 33, "timestamp" => 1738249201, "title" => "Ny grisestald og babyhaul | Livet på gården Ep. 35", "upload_date" => "20250130"} 10:24:18.175 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:18.175 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:18.176 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-30 15:00:01Z], 3] 10:24:18.178 [debug] QUERY OK source="media_items" db=1.7ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny grisestald og babyhaul | Livet på gården Ep. 35", "87caec2d-2299-4b68-9cbd-70ba86de2d9c", "06C0dkPjHIU", false, 1577, false, "https://www.youtube.com/watch?v=06C0dkPjHIU", 33, "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", false, false, 3, [], 1, ~U[2025-01-30 15:00:01Z], ~U[2026-10-17 08:24:18Z], ~U[2026-10-17 08:24:18Z], "I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny grisestald og babyhaul | Livet på gården Ep. 35", "06C0dkPjHIU", 1577, false, "https://www.youtube.com/watch?v=06C0dkPjHIU", "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", false, 3, ~U[2025-01-30 15:00:01Z]] 10:24:18.179 [debug] QUERY OK source="sources" db=0.2ms idle=206.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:18.179 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:18.180 [debug] QUERY OK source="media_items" db=0.2ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [5894] 10:24:18.180 [debug] Current batch of media processed. Will check again in 1000ms 10:24:19.180 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1119, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", "id" => "5VIOEvQa6qs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5VIOEvQa6qs", "playlist_index" => 34, "timestamp" => 1738854015, "title" => "Pizzaaften og rottefangst | Livet på gården Ep. 36", "upload_date" => "20250206"} 10:24:19.181 [debug] QUERY OK source="sources" db=0.3ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:19.182 [debug] QUERY OK source="sources" db=0.2ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:19.182 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-06 15:00:15Z], 3] 10:24:19.184 [debug] QUERY OK source="media_items" db=1.1ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Pizzaaften og rottefangst | Livet på gården Ep. 36", "531b8393-c051-45ca-b18f-ae2c124d04f2", "5VIOEvQa6qs", false, 1119, false, "https://www.youtube.com/watch?v=5VIOEvQa6qs", 34, "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", false, false, 3, [], 1, ~U[2025-02-06 15:00:15Z], ~U[2026-10-17 08:24:19Z], ~U[2026-10-17 08:24:19Z], "I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Pizzaaften og rottefangst | Livet på gården Ep. 36", "5VIOEvQa6qs", 1119, false, "https://www.youtube.com/watch?v=5VIOEvQa6qs", "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", false, 3, ~U[2025-02-06 15:00:15Z]] 10:24:19.185 [debug] QUERY OK source="sources" db=0.2ms idle=211.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:19.185 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:19.186 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [7183] 10:24:19.186 [debug] Current batch of media processed. Will check again in 1000ms 10:24:20.187 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 964, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", "id" => "C4VNr3_SRjc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=C4VNr3_SRjc", "playlist_index" => 35, "timestamp" => 1739458815, "title" => "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "upload_date" => "20250213"} 10:24:20.188 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:20.189 [debug] QUERY OK source="sources" db=0.1ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:20.189 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-13 15:00:15Z], 3] 10:24:20.192 [debug] QUERY OK source="media_items" db=1.6ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "cc0adb19-654d-4926-910d-619657a8e816", "C4VNr3_SRjc", false, 964, false, "https://www.youtube.com/watch?v=C4VNr3_SRjc", 35, "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", false, false, 3, [], 1, ~U[2025-02-13 15:00:15Z], ~U[2026-10-17 08:24:20Z], ~U[2026-10-17 08:24:20Z], "Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "C4VNr3_SRjc", 964, false, "https://www.youtube.com/watch?v=C4VNr3_SRjc", "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", false, 3, ~U[2025-02-13 15:00:15Z]] 10:24:20.193 [debug] QUERY OK source="sources" db=0.3ms idle=217.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:20.193 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:20.194 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [8385] 10:24:20.194 [debug] Current batch of media processed. Will check again in 1000ms 10:24:21.195 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1364, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", "id" => "y7cv58JT-FI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=y7cv58JT-FI", "playlist_index" => 36, "timestamp" => 1740063685, "title" => "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "upload_date" => "20250220"} 10:24:21.196 [debug] QUERY OK source="sources" db=0.3ms idle=1004.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:21.197 [debug] QUERY OK source="sources" db=0.6ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:21.198 [debug] QUERY OK source="media_items" db=0.5ms idle=1004.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-20 15:01:25Z], 3] 10:24:21.200 [debug] QUERY OK source="media_items" db=1.2ms idle=1004.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "fae7f2bb-37c6-4257-a0f1-d46937edab56", "y7cv58JT-FI", false, 1364, false, "https://www.youtube.com/watch?v=y7cv58JT-FI", 36, "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", false, false, 3, [], 1, ~U[2025-02-20 15:01:25Z], ~U[2026-10-17 08:24:21Z], ~U[2026-10-17 08:24:21Z], "I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "y7cv58JT-FI", 1364, false, "https://www.youtube.com/watch?v=y7cv58JT-FI", "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", false, 3, ~U[2025-02-20 15:01:25Z]] 10:24:21.200 [debug] QUERY OK source="sources" db=0.3ms idle=223.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:21.201 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:21.202 [debug] QUERY OK source="media_items" db=0.3ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [9710] 10:24:21.202 [debug] Current batch of media processed. Will check again in 1000ms 10:24:22.202 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1194, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", "id" => "lZWB5QR4wPQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lZWB5QR4wPQ", "playlist_index" => 37, "timestamp" => 1741273266, "title" => "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "upload_date" => "20250306"} 10:24:22.203 [debug] QUERY OK source="sources" db=0.3ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:22.204 [debug] QUERY OK source="sources" db=0.2ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:22.205 [debug] QUERY OK source="media_items" db=0.6ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-06 15:01:06Z], 3] 10:24:22.265 [debug] QUERY OK source="media_items" db=59.5ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "a743ded3-078d-49b5-8a90-a662ef1fb97e", "lZWB5QR4wPQ", false, 1194, false, "https://www.youtube.com/watch?v=lZWB5QR4wPQ", 37, "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", false, false, 3, [], 1, ~U[2025-03-06 15:01:06Z], ~U[2026-10-17 08:24:22Z], ~U[2026-10-17 08:24:22Z], "I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "lZWB5QR4wPQ", 1194, false, "https://www.youtube.com/watch?v=lZWB5QR4wPQ", "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", false, 3, ~U[2025-03-06 15:01:06Z]] 10:24:22.265 [debug] QUERY OK source="sources" db=0.3ms idle=288.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:22.266 [debug] QUERY OK source="media_profiles" db=0.2ms idle=62.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:22.266 [debug] QUERY OK source="media_items" db=0.2ms idle=62.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [13149] 10:24:22.267 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1167, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", "id" => "Ok2_GV07ZBQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", "playlist_index" => 38, "timestamp" => 1741878023, "title" => "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "upload_date" => "20250313"} 10:24:22.267 [debug] QUERY OK source="sources" db=0.2ms idle=62.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:22.268 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:22.268 [debug] QUERY OK source="media_items" db=0.4ms idle=2.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-13 15:00:23Z], 3] 10:24:22.270 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "4752def5-25de-4571-9d3d-02f13b08ec84", "Ok2_GV07ZBQ", false, 1167, false, "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", 38, "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", false, false, 3, [], 1, ~U[2025-03-13 15:00:23Z], ~U[2026-10-17 08:24:22Z], ~U[2026-10-17 08:24:22Z], "I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "Ok2_GV07ZBQ", 1167, false, "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", false, 3, ~U[2025-03-13 15:00:23Z]] 10:24:22.270 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:22.271 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:22.272 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [15018] 10:24:22.272 [debug] Current batch of media processed. Will check again in 1000ms 10:24:23.272 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1161, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", "id" => "_dr97qz8fXE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_dr97qz8fXE", "playlist_index" => 39, "timestamp" => 1746712848, "title" => "En baby og nesting mode | Livet på gården Ep. 41", "upload_date" => "20250508"} 10:24:23.273 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:23.273 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:23.274 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-08 14:00:48Z], 3] 10:24:23.276 [debug] QUERY OK source="media_items" db=1.7ms idle=1002.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En baby og nesting mode | Livet på gården Ep. 41", "1fcd2460-2869-431f-9925-c23ab69c85fb", "_dr97qz8fXE", false, 1161, false, "https://www.youtube.com/watch?v=_dr97qz8fXE", 39, "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", false, false, 3, [], 1, ~U[2025-05-08 14:00:48Z], ~U[2026-10-17 08:24:23Z], ~U[2026-10-17 08:24:23Z], "Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En baby og nesting mode | Livet på gården Ep. 41", "_dr97qz8fXE", 1161, false, "https://www.youtube.com/watch?v=_dr97qz8fXE", "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", false, 3, ~U[2025-05-08 14:00:48Z]] 10:24:23.277 [debug] QUERY OK source="sources" db=0.1ms idle=298.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:23.277 [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] 10:24:23.278 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [31596] 10:24:23.278 [debug] Current batch of media processed. Will check again in 1000ms 10:24:24.278 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1565, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", "id" => "XyfY9KQlii8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XyfY9KQlii8", "playlist_index" => 40, "timestamp" => 1747317649, "title" => "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "upload_date" => "20250515"} 10:24:24.279 [debug] QUERY OK source="sources" db=0.3ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:24.279 [debug] QUERY OK source="sources" db=0.1ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:24.280 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-15 14:00:49Z], 3] 10:24:24.282 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "0efc931a-f362-4de2-8794-0b3c36ce535e", "XyfY9KQlii8", false, 1565, false, "https://www.youtube.com/watch?v=XyfY9KQlii8", 40, "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", false, false, 3, [], 1, ~U[2025-05-15 14:00:49Z], ~U[2026-10-17 08:24:24Z], ~U[2026-10-17 08:24:24Z], "I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "XyfY9KQlii8", 1565, false, "https://www.youtube.com/watch?v=XyfY9KQlii8", "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", false, 3, ~U[2025-05-15 14:00:49Z]] 10:24:24.282 [debug] QUERY OK source="sources" db=0.1ms idle=302.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:24.283 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:24.283 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [33551] 10:24:24.284 [debug] Current batch of media processed. Will check again in 1000ms 10:24:25.284 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1220, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", "id" => "4lsBpblT134", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4lsBpblT134", "playlist_index" => 41, "timestamp" => 1747922414, "title" => "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "upload_date" => "20250522"} 10:24:25.285 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:25.285 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:25.286 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-22 14:00:14Z], 3] 10:24:25.288 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "abe02e7f-659d-4742-bb9a-dc42f7dfd3fa", "4lsBpblT134", false, 1220, false, "https://www.youtube.com/watch?v=4lsBpblT134", 41, "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", false, false, 3, [], 1, ~U[2025-05-22 14:00:14Z], ~U[2026-10-17 08:24:25Z], ~U[2026-10-17 08:24:25Z], "I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "4lsBpblT134", 1220, false, "https://www.youtube.com/watch?v=4lsBpblT134", "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", false, 3, ~U[2025-05-22 14:00:14Z]] 10:24:25.288 [debug] QUERY OK source="sources" db=0.2ms idle=307.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:25.289 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:25.289 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [35686] 10:24:25.289 [debug] Current batch of media processed. Will check again in 1000ms 10:24:26.290 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1273, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", "id" => "LwViuowDYFk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LwViuowDYFk", "playlist_index" => 42, "timestamp" => 1748527235, "title" => "Højgravid og et hus uden tag | Livet på gården Ep. 44", "upload_date" => "20250529"} 10:24:26.291 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:26.291 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:26.292 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-29 14:00:35Z], 3] 10:24:26.294 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Højgravid og et hus uden tag | Livet på gården Ep. 44", "bcb2191c-6c04-4066-b456-cfd36bee2239", "LwViuowDYFk", false, 1273, false, "https://www.youtube.com/watch?v=LwViuowDYFk", 42, "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", false, false, 3, [], 1, ~U[2025-05-29 14:00:35Z], ~U[2026-10-17 08:24:26Z], ~U[2026-10-17 08:24:26Z], "I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Højgravid og et hus uden tag | Livet på gården Ep. 44", "LwViuowDYFk", 1273, false, "https://www.youtube.com/watch?v=LwViuowDYFk", "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", false, 3, ~U[2025-05-29 14:00:35Z]] 10:24:26.294 [debug] QUERY OK source="sources" db=0.1ms idle=312.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:26.295 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:26.295 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [37791] 10:24:26.295 [debug] Current batch of media processed. Will check again in 1000ms 10:24:27.296 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1394, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", "id" => "QVFwXhDMin4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QVFwXhDMin4", "playlist_index" => 43, "timestamp" => 1749132041, "title" => "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "upload_date" => "20250605"} 10:24:27.297 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:27.297 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:27.298 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-05 14:00:41Z], 3] 10:24:27.300 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "f4653fec-ec5f-43c6-ba80-7e8870b1e7ad", "QVFwXhDMin4", false, 1394, false, "https://www.youtube.com/watch?v=QVFwXhDMin4", 43, "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", false, false, 3, [], 1, ~U[2025-06-05 14:00:41Z], ~U[2026-10-17 08:24:27Z], ~U[2026-10-17 08:24:27Z], "I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "QVFwXhDMin4", 1394, false, "https://www.youtube.com/watch?v=QVFwXhDMin4", "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", false, 3, ~U[2025-06-05 14:00:41Z]] 10:24:27.300 [debug] QUERY OK source="sources" db=0.1ms idle=316.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:27.301 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:27.301 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [39841] 10:24:27.301 [debug] Current batch of media processed. Will check again in 1000ms 10:24:28.302 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1290, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", "id" => "-rvS4KsyD-8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-rvS4KsyD-8", "playlist_index" => 44, "timestamp" => 1749736800, "title" => "Når 2 bliver til 3 | Livet på gården Ep. 46", "upload_date" => "20250612"} 10:24:28.303 [debug] QUERY OK source="sources" db=0.3ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:28.303 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:28.304 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-12 14:00:00Z], 3] 10:24:28.306 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Når 2 bliver til 3 | Livet på gården Ep. 46", "f770954a-497c-43f6-9cdb-82dd7df07cc5", "-rvS4KsyD-8", false, 1290, false, "https://www.youtube.com/watch?v=-rvS4KsyD-8", 44, "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", false, false, 3, [], 1, ~U[2025-06-12 14:00:00Z], ~U[2026-10-17 08:24:28Z], ~U[2026-10-17 08:24:28Z], "I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Når 2 bliver til 3 | Livet på gården Ep. 46", "-rvS4KsyD-8", 1290, false, "https://www.youtube.com/watch?v=-rvS4KsyD-8", "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", false, 3, ~U[2025-06-12 14:00:00Z]] 10:24:28.306 [debug] QUERY OK source="sources" db=0.1ms idle=321.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:28.306 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:28.307 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [42004] 10:24:28.307 [debug] Current batch of media processed. Will check again in 1000ms 10:24:29.308 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1248, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", "id" => "L8u8ZcjpR6A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=L8u8ZcjpR6A", "playlist_index" => 45, "timestamp" => 1750341628, "title" => "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "upload_date" => "20250619"} 10:24:29.309 [debug] QUERY OK source="sources" db=0.2ms idle=1001.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:29.309 [debug] QUERY OK source="sources" db=0.1ms idle=324.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:29.310 [debug] QUERY OK source="media_items" db=0.4ms idle=2.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-19 14:00:28Z], 3] 10:24:29.320 [debug] QUERY OK source="media_items" db=9.1ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "30daab60-5cf9-476f-9813-9f1673e80859", "L8u8ZcjpR6A", false, 1248, false, "https://www.youtube.com/watch?v=L8u8ZcjpR6A", 45, "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", false, false, 3, [], 1, ~U[2025-06-19 14:00:28Z], ~U[2026-10-17 08:24:29Z], ~U[2026-10-17 08:24:29Z], "I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "L8u8ZcjpR6A", 1248, false, "https://www.youtube.com/watch?v=L8u8ZcjpR6A", "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", false, 3, ~U[2025-06-19 14:00:28Z]] 10:24:29.320 [debug] QUERY OK source="sources" db=0.2ms idle=12.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:29.321 [debug] QUERY OK source="media_profiles" db=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" = ?) [1] 10:24:29.321 [debug] QUERY OK source="media_items" db=0.2ms 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 [44155] 10:24:29.321 [debug] Current batch of media processed. Will check again in 1000ms 10:24:30.322 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 885, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", "id" => "W_VQNTe2uV0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=W_VQNTe2uV0", "playlist_index" => 46, "timestamp" => 1750946446, "title" => "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "upload_date" => "20250626"} 10:24:30.323 [debug] QUERY OK source="sources" db=0.3ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:30.324 [debug] QUERY OK source="sources" db=0.4ms queue=0.4ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:30.325 [debug] QUERY OK source="media_items" db=0.7ms queue=0.3ms idle=1003.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-26 14:00:46Z], 3] 10:24:30.330 [debug] QUERY OK source="media_items" db=3.8ms idle=1004.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "a632197c-cf3d-40ed-b818-1361c5f1a860", "W_VQNTe2uV0", false, 885, false, "https://www.youtube.com/watch?v=W_VQNTe2uV0", 46, "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", false, false, 3, [], 1, ~U[2025-06-26 14:00:46Z], ~U[2026-10-17 08:24:30Z], ~U[2026-10-17 08:24:30Z], "Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "W_VQNTe2uV0", 885, false, "https://www.youtube.com/watch?v=W_VQNTe2uV0", "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", false, 3, ~U[2025-06-26 14:00:46Z]] 10:24:30.331 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=344.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:30.332 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:30.332 [debug] QUERY OK source="media_items" db=0.5ms idle=7.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [46349] 10:24:30.333 [debug] Current batch of media processed. Will check again in 1000ms 10:24:30.865 [info] {"source":"oban","duration":761,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:24:31.333 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1455, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", "id" => "LOW7BsM3muw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LOW7BsM3muw", "playlist_index" => 47, "timestamp" => 1751551238, "title" => "Tomater og byggemøde | Livet på gården Ep. 49", "upload_date" => "20250703"} 10:24:31.334 [debug] QUERY OK source="sources" db=0.2ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:31.334 [debug] QUERY OK source="sources" db=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:31.335 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-03 14:00:38Z], 3] 10:24:31.337 [debug] QUERY OK source="media_items" db=1.2ms idle=470.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tomater og byggemøde | Livet på gården Ep. 49", "42f55f45-126f-46d0-ab27-5083af425997", "LOW7BsM3muw", false, 1455, false, "https://www.youtube.com/watch?v=LOW7BsM3muw", 47, "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", false, false, 3, [], 1, ~U[2025-07-03 14:00:38Z], ~U[2026-10-17 08:24:31Z], ~U[2026-10-17 08:24:31Z], "I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tomater og byggemøde | Livet på gården Ep. 49", "LOW7BsM3muw", 1455, false, "https://www.youtube.com/watch?v=LOW7BsM3muw", "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", false, 3, ~U[2025-07-03 14:00:38Z]] 10:24:31.337 [debug] QUERY OK source="sources" db=0.2ms idle=350.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:31.338 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:31.338 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [48526] 10:24:31.338 [debug] Current batch of media processed. Will check again in 1000ms 10:24:32.339 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1048, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", "id" => "eRwqESemLz0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eRwqESemLz0", "playlist_index" => 48, "timestamp" => 1752156067, "title" => "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "upload_date" => "20250710"} 10:24:32.340 [debug] QUERY OK source="sources" db=0.4ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:32.341 [debug] QUERY OK source="sources" db=0.3ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:32.342 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-10 14:01:07Z], 3] 10:24:32.344 [debug] QUERY OK source="media_items" db=1.2ms idle=1004.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "eb04ff45-2a9d-4b5a-8d07-3c82cbfd032a", "eRwqESemLz0", false, 1048, false, "https://www.youtube.com/watch?v=eRwqESemLz0", 48, "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", false, false, 3, [], 1, ~U[2025-07-10 14:01:07Z], ~U[2026-10-17 08:24:32Z], ~U[2026-10-17 08:24:32Z], "I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "eRwqESemLz0", 1048, false, "https://www.youtube.com/watch?v=eRwqESemLz0", "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", false, 3, ~U[2025-07-10 14:01:07Z]] 10:24:32.345 [debug] QUERY OK source="sources" db=0.5ms idle=356.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:32.346 [debug] QUERY OK source="media_profiles" db=0.5ms idle=4.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:32.347 [debug] QUERY OK source="media_items" db=0.5ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [50818] 10:24:32.347 [debug] Current batch of media processed. Will check again in 1000ms 10:24:33.347 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1223, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", "id" => "N_QTztIN_uE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N_QTztIN_uE", "playlist_index" => 49, "timestamp" => 1752760837, "title" => "Vores datter er med i haven | Livet på gården Ep. 51", "upload_date" => "20250717"} 10:24:33.348 [debug] QUERY OK source="sources" db=0.5ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:33.349 [debug] QUERY OK source="sources" db=0.8ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:33.351 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-17 14:00:37Z], 3] 10:24:33.353 [debug] QUERY OK source="media_items" db=1.6ms idle=1004.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores datter er med i haven | Livet på gården Ep. 51", "43cb3c01-9a67-4fe3-812a-8b0f515bb8e7", "N_QTztIN_uE", false, 1223, false, "https://www.youtube.com/watch?v=N_QTztIN_uE", 49, "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", false, false, 3, [], 1, ~U[2025-07-17 14:00:37Z], ~U[2026-10-17 08:24:33Z], ~U[2026-10-17 08:24:33Z], "I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores datter er med i haven | Livet på gården Ep. 51", "N_QTztIN_uE", 1223, false, "https://www.youtube.com/watch?v=N_QTztIN_uE", "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", false, 3, ~U[2025-07-17 14:00:37Z]] 10:24:33.354 [debug] QUERY OK source="sources" db=0.3ms idle=364.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:33.355 [debug] QUERY OK source="media_profiles" db=0.6ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:33.356 [debug] QUERY OK source="media_items" db=0.6ms idle=5.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [53152] 10:24:33.356 [debug] Current batch of media processed. Will check again in 1000ms 10:24:34.357 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1213, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", "id" => "8KBS6AxLEhs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8KBS6AxLEhs", "playlist_index" => 50, "timestamp" => 1755180017, "title" => "Nyt tag på 3 dage | Livet på gården Ep. 52", "upload_date" => "20250814"} 10:24:34.358 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1004.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:34.359 [debug] QUERY OK source="sources" db=0.5ms idle=1004.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:34.360 [debug] QUERY OK source="media_items" db=0.7ms idle=1004.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-14 14:00:17Z], 3] 10:24:34.362 [debug] QUERY OK source="media_items" db=1.0ms idle=1004.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nyt tag på 3 dage | Livet på gården Ep. 52", "e64cbeca-9fc8-43df-b5cc-35b5f89b8932", "8KBS6AxLEhs", false, 1213, false, "https://www.youtube.com/watch?v=8KBS6AxLEhs", 50, "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", false, false, 3, [], 1, ~U[2025-08-14 14:00:17Z], ~U[2026-10-17 08:24:34Z], ~U[2026-10-17 08:24:34Z], "I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nyt tag på 3 dage | Livet på gården Ep. 52", "8KBS6AxLEhs", 1213, false, "https://www.youtube.com/watch?v=8KBS6AxLEhs", "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", false, 3, ~U[2025-08-14 14:00:17Z]] 10:24:34.363 [debug] QUERY OK source="sources" db=0.6ms idle=370.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:34.363 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:34.364 [debug] QUERY OK source="media_items" db=0.4ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [62172] 10:24:34.364 [debug] Current batch of media processed. Will check again in 1000ms 10:24:35.365 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1195, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", "id" => "xTCNmkJl7cs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xTCNmkJl7cs", "playlist_index" => 51, "timestamp" => 1755784885, "title" => "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "upload_date" => "20250821"} 10:24:35.367 [debug] QUERY OK source="sources" db=0.8ms idle=1004.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:35.368 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1004.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:35.369 [debug] QUERY OK source="media_items" db=1.1ms idle=1004.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-21 14:01:25Z], 3] 10:24:35.372 [debug] QUERY OK source="media_items" db=1.0ms idle=1006.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "13a73d38-0328-4cb5-bc3a-393e3455e77e", "xTCNmkJl7cs", false, 1195, false, "https://www.youtube.com/watch?v=xTCNmkJl7cs", 51, "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", false, false, 3, [], 1, ~U[2025-08-21 14:01:25Z], ~U[2026-10-17 08:24:35Z], ~U[2026-10-17 08:24:35Z], "I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "xTCNmkJl7cs", 1195, false, "https://www.youtube.com/watch?v=xTCNmkJl7cs", "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", false, 3, ~U[2025-08-21 14:01:25Z]] 10:24:35.373 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=380.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:35.374 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:35.376 [debug] QUERY OK source="media_items" db=0.6ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [63986] 10:24:35.376 [debug] Current batch of media processed. Will check again in 1000ms 10:24:36.377 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1652, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", "id" => "U_w3PIAVp40", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=U_w3PIAVp40", "playlist_index" => 52, "timestamp" => 1756389646, "title" => "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "upload_date" => "20250828"} 10:24:36.378 [debug] QUERY OK source="sources" db=0.3ms idle=1006.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:36.379 [debug] QUERY OK source="sources" db=0.1ms idle=1005.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:36.379 [debug] QUERY OK source="media_items" db=0.5ms idle=1004.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-28 14:00:46Z], 3] 10:24:36.381 [debug] QUERY OK source="media_items" db=1.2ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "a1a6bc64-2995-4bff-b969-acd92e9a540f", "U_w3PIAVp40", false, 1652, false, "https://www.youtube.com/watch?v=U_w3PIAVp40", 52, "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", false, false, 3, [], 1, ~U[2025-08-28 14:00:46Z], ~U[2026-10-17 08:24:36Z], ~U[2026-10-17 08:24:36Z], "Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "U_w3PIAVp40", 1652, false, "https://www.youtube.com/watch?v=U_w3PIAVp40", "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", false, 3, ~U[2025-08-28 14:00:46Z]] 10:24:36.384 [debug] QUERY OK source="sources" db=0.3ms idle=388.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:36.385 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:36.387 [debug] QUERY OK source="media_items" db=1.5ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [66408] 10:24:36.387 [debug] Current batch of media processed. Will check again in 1000ms 10:24:37.387 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1265, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", "id" => "oJHte_vjoV4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oJHte_vjoV4", "playlist_index" => 53, "timestamp" => 1754575283, "title" => "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "upload_date" => "20250807"} 10:24:37.388 [debug] QUERY OK source="sources" db=0.4ms idle=1006.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:37.389 [debug] QUERY OK source="sources" db=0.2ms idle=1006.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:37.389 [debug] QUERY OK source="media_items" db=0.5ms idle=1004.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-07 14:01:23Z], 3] 10:24:37.392 [debug] QUERY OK source="media_items" db=2.3ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "b2bcf647-431a-4d24-b76e-1f7417f58c6d", "oJHte_vjoV4", false, 1265, false, "https://www.youtube.com/watch?v=oJHte_vjoV4", 53, "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", false, false, 3, [], 1, ~U[2025-08-07 14:01:23Z], ~U[2026-10-17 08:24:37Z], ~U[2026-10-17 08:24:37Z], "Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "oJHte_vjoV4", 1265, false, "https://www.youtube.com/watch?v=oJHte_vjoV4", "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", false, 3, ~U[2025-08-07 14:01:23Z]] 10:24:37.393 [debug] QUERY OK source="sources" db=0.3ms idle=397.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:37.393 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:37.394 [debug] QUERY OK source="media_items" db=0.4ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [59883] 10:24:37.394 [debug] Current batch of media processed. Will check again in 1000ms 10:24:38.395 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1396, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", "id" => "gbe1EwOyOKY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gbe1EwOyOKY", "playlist_index" => 54, "timestamp" => 1756994468, "title" => "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "upload_date" => "20250904"} 10:24:38.396 [debug] QUERY OK source="sources" db=0.4ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:38.397 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:38.397 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-04 14:01:08Z], 3] 10:24:38.400 [debug] QUERY OK source="media_items" db=1.4ms idle=1003.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "0b78350c-6dc9-44b3-aaa2-132449f6511d", "gbe1EwOyOKY", false, 1396, false, "https://www.youtube.com/watch?v=gbe1EwOyOKY", 54, "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", false, false, 3, [], 1, ~U[2025-09-04 14:01:08Z], ~U[2026-10-17 08:24:38Z], ~U[2026-10-17 08:24:38Z], "I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "gbe1EwOyOKY", 1396, false, "https://www.youtube.com/watch?v=gbe1EwOyOKY", "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", false, 3, ~U[2025-09-04 14:01:08Z]] 10:24:38.400 [debug] QUERY OK source="sources" db=0.2ms idle=402.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:38.401 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:38.401 [debug] QUERY OK source="media_items" db=0.2ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [68913] 10:24:38.401 [debug] Current batch of media processed. Will check again in 1000ms 10:24:39.402 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1421, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", "id" => "aPr93nvV6Sc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aPr93nvV6Sc", "playlist_index" => 55, "timestamp" => 1757599202, "title" => "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "upload_date" => "20250911"} 10:24:39.403 [debug] QUERY OK source="sources" db=0.3ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:39.404 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:39.405 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1003.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 14:00:02Z], 3] 10:24:39.407 [debug] QUERY OK source="media_items" db=1.2ms idle=1004.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "e8f10d51-abd6-40f0-af12-8e69eb94d507", "aPr93nvV6Sc", false, 1421, false, "https://www.youtube.com/watch?v=aPr93nvV6Sc", 55, "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", false, false, 3, [], 1, ~U[2025-09-11 14:00:02Z], ~U[2026-10-17 08:24:39Z], ~U[2026-10-17 08:24:39Z], "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "aPr93nvV6Sc", 1421, false, "https://www.youtube.com/watch?v=aPr93nvV6Sc", "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", false, 3, ~U[2025-09-11 14:00:02Z]] 10:24:39.408 [debug] QUERY OK source="sources" db=0.3ms idle=409.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:39.409 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=4.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:39.410 [debug] QUERY OK source="media_items" db=0.4ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [71436] 10:24:39.410 [debug] Current batch of media processed. Will check again in 1000ms 10:24:40.410 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1020, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", "id" => "lLuYcnLpHk8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lLuYcnLpHk8", "playlist_index" => 56, "timestamp" => 1758204394, "title" => "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "upload_date" => "20250918"} 10:24:40.411 [debug] QUERY OK source="sources" db=0.4ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:40.412 [debug] QUERY OK source="sources" db=0.3ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:40.413 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-18 14:06:34Z], 3] 10:24:40.415 [debug] QUERY OK source="media_items" db=1.4ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "b02b3a39-58f9-4f3d-b835-8b3d63c93dcc", "lLuYcnLpHk8", false, 1020, false, "https://www.youtube.com/watch?v=lLuYcnLpHk8", 56, "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", false, false, 3, [], 1, ~U[2025-09-18 14:06:34Z], ~U[2026-10-17 08:24:40Z], ~U[2026-10-17 08:24:40Z], "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "lLuYcnLpHk8", 1020, false, "https://www.youtube.com/watch?v=lLuYcnLpHk8", "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", false, 3, ~U[2025-09-18 14:06:34Z]] 10:24:40.416 [debug] QUERY OK source="sources" db=0.4ms idle=415.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:40.416 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:40.417 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [73945] 10:24:40.417 [debug] Current batch of media processed. Will check again in 1000ms 10:24:41.418 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1485, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", "id" => "rFwrB9Pe4hM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rFwrB9Pe4hM", "playlist_index" => 57, "timestamp" => 1758808893, "title" => "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "upload_date" => "20250925"} 10:24:41.419 [debug] QUERY OK source="sources" db=0.4ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:41.420 [debug] QUERY OK source="sources" db=0.3ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:41.421 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-25 14:01:33Z], 3] 10:24:41.423 [debug] QUERY OK source="media_items" db=1.6ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "f025c56b-1b8b-4343-a896-49fec76e92a9", "rFwrB9Pe4hM", false, 1485, false, "https://www.youtube.com/watch?v=rFwrB9Pe4hM", 57, "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", false, false, 3, [], 1, ~U[2025-09-25 14:01:33Z], ~U[2026-10-17 08:24:41Z], ~U[2026-10-17 08:24:41Z], "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "rFwrB9Pe4hM", 1485, false, "https://www.youtube.com/watch?v=rFwrB9Pe4hM", "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", false, 3, ~U[2025-09-25 14:01:33Z]] 10:24:41.424 [debug] QUERY OK source="sources" db=1.2ms idle=422.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:41.425 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:41.426 [debug] QUERY OK source="media_items" db=0.3ms idle=5.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [76480] 10:24:41.426 [debug] Current batch of media processed. Will check again in 1000ms 10:24:42.427 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1641, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", "id" => "uEP1rtTb-XE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uEP1rtTb-XE", "playlist_index" => 58, "timestamp" => 1759413692, "title" => "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "upload_date" => "20251002"} 10:24:42.428 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1004.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:42.428 [debug] QUERY OK source="sources" db=0.1ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:42.429 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 14:01:32Z], 3] 10:24:42.431 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "a14f2eb9-2b64-4d88-acf8-5d1b1dc89d6c", "uEP1rtTb-XE", false, 1641, false, "https://www.youtube.com/watch?v=uEP1rtTb-XE", 58, "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", false, false, 3, [], 1, ~U[2025-10-02 14:01:32Z], ~U[2026-10-17 08:24:42Z], ~U[2026-10-17 08:24:42Z], "I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "uEP1rtTb-XE", 1641, false, "https://www.youtube.com/watch?v=uEP1rtTb-XE", "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", false, 3, ~U[2025-10-02 14:01:32Z]] 10:24:42.431 [debug] QUERY OK source="sources" db=0.2ms idle=427.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:42.431 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:42.432 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [79073] 10:24:42.432 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1534, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", "id" => "mCkvhf9YDCk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mCkvhf9YDCk", "playlist_index" => 59, "timestamp" => 1760018475, "title" => "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "upload_date" => "20251009"} 10:24:42.433 [debug] QUERY OK source="sources" db=0.3ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:42.433 [debug] QUERY OK source="sources" db=0.1ms idle=2.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:42.434 [debug] QUERY OK source="media_items" db=0.5ms idle=2.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-09 14:01:15Z], 3] 10:24:42.436 [debug] QUERY OK source="media_items" db=1.3ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "ab41a7b7-b57b-49d9-981c-1bce2d407761", "mCkvhf9YDCk", false, 1534, false, "https://www.youtube.com/watch?v=mCkvhf9YDCk", 59, "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", false, false, 3, [], 1, ~U[2025-10-09 14:01:15Z], ~U[2026-10-17 08:24:42Z], ~U[2026-10-17 08:24:42Z], "I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "mCkvhf9YDCk", 1534, false, "https://www.youtube.com/watch?v=mCkvhf9YDCk", "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", false, 3, ~U[2025-10-09 14:01:15Z]] 10:24:42.436 [debug] QUERY OK source="sources" db=0.1ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:42.437 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:42.437 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [81473] 10:24:42.438 [debug] Current batch of media processed. Will check again in 1000ms 10:24:43.438 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1491, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", "id" => "KMuFnD8X_To", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KMuFnD8X_To", "playlist_index" => 60, "timestamp" => 1760623235, "title" => "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "upload_date" => "20251016"} 10:24:43.439 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:43.440 [debug] QUERY OK source="sources" db=0.5ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:43.441 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-16 14:00:35Z], 3] 10:24:43.442 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "8de58d84-39b3-452b-aae6-94734614c055", "KMuFnD8X_To", false, 1491, false, "https://www.youtube.com/watch?v=KMuFnD8X_To", 60, "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", false, false, 3, [], 1, ~U[2025-10-16 14:00:35Z], ~U[2026-10-17 08:24:43Z], ~U[2026-10-17 08:24:43Z], "I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "KMuFnD8X_To", 1491, false, "https://www.youtube.com/watch?v=KMuFnD8X_To", "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", false, 3, ~U[2025-10-16 14:00:35Z]] 10:24:43.442 [debug] QUERY OK source="sources" db=0.1ms idle=437.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:43.443 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:43.443 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [84158] 10:24:43.444 [debug] Current batch of media processed. Will check again in 1000ms 10:24:44.444 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1384, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", "id" => "aSbYAroNsjw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aSbYAroNsjw", "playlist_index" => 61, "timestamp" => 1761228002, "title" => "Vi bygger et gyngestativ | Livet på gården Ep. 62", "upload_date" => "20251023"} 10:24:44.445 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:44.445 [debug] QUERY OK source="sources" db=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:44.446 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 14:00:02Z], 3] 10:24:44.448 [debug] QUERY OK source="media_items" db=1.0ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi bygger et gyngestativ | Livet på gården Ep. 62", "7d24c6ea-183e-4ad0-8d62-0d38020b8d99", "aSbYAroNsjw", false, 1384, false, "https://www.youtube.com/watch?v=aSbYAroNsjw", 61, "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", false, false, 3, [], 1, ~U[2025-10-23 14:00:02Z], ~U[2026-10-17 08:24:44Z], ~U[2026-10-17 08:24:44Z], "I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi bygger et gyngestativ | Livet på gården Ep. 62", "aSbYAroNsjw", 1384, false, "https://www.youtube.com/watch?v=aSbYAroNsjw", "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", false, 3, ~U[2025-10-23 14:00:02Z]] 10:24:44.448 [debug] QUERY OK source="sources" db=0.1ms idle=442.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:44.449 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:44.449 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [86840] 10:24:44.449 [debug] Current batch of media processed. Will check again in 1000ms 10:24:45.450 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1386, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", "id" => "_c08N8LDjq4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_c08N8LDjq4", "playlist_index" => 62, "timestamp" => 1761832855, "title" => "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "upload_date" => "20251030"} 10:24:45.451 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:45.451 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:45.452 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 14:00:55Z], 3] 10:24:45.454 [debug] QUERY OK source="media_items" db=1.6ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "a04e5cbb-1c67-4c44-b329-3427f20ef3f8", "_c08N8LDjq4", false, 1386, false, "https://www.youtube.com/watch?v=_c08N8LDjq4", 62, "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", false, false, 3, [], 1, ~U[2025-10-30 14:00:55Z], ~U[2026-10-17 08:24:45Z], ~U[2026-10-17 08:24:45Z], "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "_c08N8LDjq4", 1386, false, "https://www.youtube.com/watch?v=_c08N8LDjq4", "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", false, 3, ~U[2025-10-30 14:00:55Z]] 10:24:45.455 [debug] QUERY OK source="sources" db=0.1ms idle=447.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:45.455 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:45.456 [debug] QUERY OK source="media_items" db=0.5ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [89627] 10:24:45.456 [debug] Current batch of media processed. Will check again in 1000ms 10:24:46.457 [debug] Current batch of media processed. Will check again in 1000ms 10:24:47.458 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1699, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", "id" => "NcSqbDLMJCo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NcSqbDLMJCo", "playlist_index" => 63, "timestamp" => 1762437648, "title" => "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "upload_date" => "20251106"} 10:24:47.459 [debug] QUERY OK source="sources" db=0.4ms idle=448.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:47.460 [debug] QUERY OK source="sources" db=0.2ms idle=147.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:47.461 [debug] QUERY OK source="media_items" db=0.6ms idle=147.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-06 14:00:48Z], 3] 10:24:47.462 [debug] QUERY OK source="media_items" db=1.3ms idle=148.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "d1213129-ed18-4241-b46a-bf8944704d80", "NcSqbDLMJCo", false, 1699, false, "https://www.youtube.com/watch?v=NcSqbDLMJCo", 63, "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", false, false, 3, [], 1, ~U[2025-11-06 14:00:48Z], ~U[2026-10-17 08:24:47Z], ~U[2026-10-17 08:24:47Z], "I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "NcSqbDLMJCo", 1699, false, "https://www.youtube.com/watch?v=NcSqbDLMJCo", "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", false, 3, ~U[2025-11-06 14:00:48Z]] 10:24:47.463 [debug] QUERY OK source="sources" db=0.2ms idle=150.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:47.464 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:47.464 [debug] QUERY OK source="media_items" db=0.4ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [92461] 10:24:47.465 [debug] Current batch of media processed. Will check again in 1000ms 10:24:48.465 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1312, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", "id" => "bt4dqhzvEu0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bt4dqhzvEu0", "playlist_index" => 64, "timestamp" => 1763046097, "title" => "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "upload_date" => "20251113"} 10:24:48.466 [debug] QUERY OK source="sources" db=0.4ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:48.467 [debug] QUERY OK source="sources" db=0.2ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:48.468 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-13 15:01:37Z], 3] 10:24:48.470 [debug] QUERY OK source="media_items" db=1.3ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "ae03caa7-b8c1-4e1b-a630-63338c7f46b0", "bt4dqhzvEu0", false, 1312, false, "https://www.youtube.com/watch?v=bt4dqhzvEu0", 64, "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", false, false, 3, [], 1, ~U[2025-11-13 15:01:37Z], ~U[2026-10-17 08:24:48Z], ~U[2026-10-17 08:24:48Z], "I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "bt4dqhzvEu0", 1312, false, "https://www.youtube.com/watch?v=bt4dqhzvEu0", "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", false, 3, ~U[2025-11-13 15:01:37Z]] 10:24:48.470 [debug] QUERY OK source="sources" db=0.1ms idle=459.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:48.471 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:48.472 [debug] QUERY OK source="media_items" db=0.4ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [95282] 10:24:48.472 [debug] Current batch of media processed. Will check again in 1000ms 10:24:49.475 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1694, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", "id" => "XO87v1AxbWQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XO87v1AxbWQ", "playlist_index" => 65, "timestamp" => 1763650866, "title" => "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "upload_date" => "20251120"} 10:24:49.476 [debug] QUERY OK source="sources" db=0.3ms idle=1005.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:49.476 [debug] QUERY OK source="sources" db=0.2ms idle=1005.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:49.477 [debug] QUERY OK source="media_items" db=0.8ms idle=1005.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-20 15:01:06Z], 3] 10:24:49.479 [debug] QUERY OK source="media_items" db=1.3ms idle=1006.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "0583782f-278f-4cf3-a104-e04ca8d16dc3", "XO87v1AxbWQ", false, 1694, false, "https://www.youtube.com/watch?v=XO87v1AxbWQ", 65, "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", false, false, 3, [], 1, ~U[2025-11-20 15:01:06Z], ~U[2026-10-17 08:24:49Z], ~U[2026-10-17 08:24:49Z], "I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "XO87v1AxbWQ", 1694, false, "https://www.youtube.com/watch?v=XO87v1AxbWQ", "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", false, 3, ~U[2025-11-20 15:01:06Z]] 10:24:49.482 [debug] QUERY OK source="sources" db=2.2ms idle=467.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:49.483 [debug] QUERY OK source="media_profiles" db=0.5ms idle=6.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:49.484 [debug] QUERY OK source="media_items" db=0.6ms idle=6.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [98129] 10:24:49.484 [debug] Current batch of media processed. Will check again in 1000ms 10:24:50.485 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1232, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", "id" => "qDN2-yN1EkI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qDN2-yN1EkI", "playlist_index" => 66, "timestamp" => 1764255705, "title" => "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "upload_date" => "20251127"} 10:24:50.486 [debug] QUERY OK source="sources" db=0.5ms idle=1006.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:50.487 [debug] QUERY OK source="sources" db=0.5ms idle=1004.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:50.488 [debug] QUERY OK source="media_items" db=0.7ms idle=1004.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-27 15:01:45Z], 3] 10:24:50.491 [debug] QUERY OK source="media_items" db=1.6ms idle=1004.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "a241f37c-c153-4857-b1db-e61542626ccb", "qDN2-yN1EkI", false, 1232, false, "https://www.youtube.com/watch?v=qDN2-yN1EkI", 66, "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", false, false, 3, [], 1, ~U[2025-11-27 15:01:45Z], ~U[2026-10-17 08:24:50Z], ~U[2026-10-17 08:24:50Z], "I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "qDN2-yN1EkI", 1232, false, "https://www.youtube.com/watch?v=qDN2-yN1EkI", "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", false, 3, ~U[2025-11-27 15:01:45Z]] 10:24:50.491 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=477.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:50.492 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:50.492 [debug] QUERY OK source="media_items" db=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [101004] 10:24:50.492 [debug] Current batch of media processed. Will check again in 1000ms 10:24:51.493 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1620, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", "id" => "kOicCYUbF9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kOicCYUbF9Y", "playlist_index" => 67, "timestamp" => 1765465294, "title" => "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "upload_date" => "20251211"} 10:24:51.494 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:51.494 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:51.495 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 15:01:34Z], 3] 10:24:51.497 [debug] QUERY OK source="media_items" db=1.6ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "818cca03-3e90-41b9-89a8-e12fb7069749", "kOicCYUbF9Y", false, 1620, false, "https://www.youtube.com/watch?v=kOicCYUbF9Y", 67, "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", false, false, 3, [], 1, ~U[2025-12-11 15:01:34Z], ~U[2026-10-17 08:24:51Z], ~U[2026-10-17 08:24:51Z], "I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "kOicCYUbF9Y", 1620, false, "https://www.youtube.com/watch?v=kOicCYUbF9Y", "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", false, 3, ~U[2025-12-11 15:01:34Z]] 10:24:51.498 [debug] QUERY OK source="sources" db=0.3ms idle=483.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:51.499 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:51.499 [debug] QUERY OK source="media_items" db=0.3ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [106794] 10:24:51.500 [debug] Current batch of media processed. Will check again in 1000ms 10:24:52.500 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1331, "filename" => "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", "id" => "49M-tMeNIb0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=49M-tMeNIb0", "playlist_index" => 68, "timestamp" => 1766070008, "title" => "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "upload_date" => "20251218"} 10:24:52.501 [debug] QUERY OK source="sources" db=0.4ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:52.502 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:52.503 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 15:00:08Z], 3] 10:24:52.505 [debug] QUERY OK source="media_items" db=1.3ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "cfa04354-a63b-4a51-bf67-51772c53613d", "49M-tMeNIb0", false, 1331, false, "https://www.youtube.com/watch?v=49M-tMeNIb0", 68, "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", false, false, 3, [], 1, ~U[2025-12-18 15:00:08Z], ~U[2026-10-17 08:24:52Z], ~U[2026-10-17 08:24:52Z], "I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "49M-tMeNIb0", 1331, false, "https://www.youtube.com/watch?v=49M-tMeNIb0", "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", false, 3, ~U[2025-12-18 15:00:08Z]] 10:24:52.505 [debug] QUERY OK source="sources" db=0.4ms idle=489.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:52.506 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:52.507 [debug] QUERY OK source="media_items" db=0.3ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [109831] 10:24:52.507 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1463, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", "id" => "EzliYAXWUnU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=EzliYAXWUnU", "playlist_index" => 69, "timestamp" => 1767884433, "title" => "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "upload_date" => "20260108"} 10:24:52.508 [debug] QUERY OK source="sources" db=0.3ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:52.508 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:52.509 [debug] QUERY OK source="media_items" db=0.6ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-08 15:00:33Z], 3] 10:24:52.514 [debug] QUERY OK source="media_items" db=4.0ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "42a5c9d9-2934-4b97-a479-c4bb55931cf3", "EzliYAXWUnU", false, 1463, false, "https://www.youtube.com/watch?v=EzliYAXWUnU", 69, "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", false, false, 3, [], 1, ~U[2026-01-08 15:00:33Z], ~U[2026-10-17 08:24:52Z], ~U[2026-10-17 08:24:52Z], "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "EzliYAXWUnU", 1463, false, "https://www.youtube.com/watch?v=EzliYAXWUnU", "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", false, 3, ~U[2026-01-08 15:00:33Z]] 10:24:52.515 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=7.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:52.516 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.3ms idle=7.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:52.517 [debug] QUERY OK source="media_items" db=0.4ms idle=7.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [118803] 10:24:52.517 [debug] Current batch of media processed. Will check again in 1000ms 10:24:53.517 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1063, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", "id" => "W25cAiJgVl4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=W25cAiJgVl4", "playlist_index" => 70, "timestamp" => 1768489257, "title" => "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "upload_date" => "20260115"} 10:24:53.518 [debug] QUERY OK source="sources" db=0.4ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:53.519 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:53.519 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-15 15:00:57Z], 3] 10:24:53.521 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "574b6902-4de9-48ff-b8af-954cfaeacbfd", "W25cAiJgVl4", false, 1063, false, "https://www.youtube.com/watch?v=W25cAiJgVl4", 70, "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", false, false, 3, [], 1, ~U[2026-01-15 15:00:57Z], ~U[2026-10-17 08:24:53Z], ~U[2026-10-17 08:24:53Z], "I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "W25cAiJgVl4", 1063, false, "https://www.youtube.com/watch?v=W25cAiJgVl4", "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", false, 3, ~U[2026-01-15 15:00:57Z]] 10:24:53.521 [debug] QUERY OK source="sources" db=0.2ms idle=505.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:53.522 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:53.523 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [121817] 10:24:53.523 [debug] Current batch of media processed. Will check again in 1000ms 10:24:54.523 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1312, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", "id" => "ZhpmiMpVyZw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZhpmiMpVyZw", "playlist_index" => 71, "timestamp" => 1769094066, "title" => "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "upload_date" => "20260122"} 10:24:54.524 [debug] QUERY OK source="sources" db=0.4ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:54.525 [debug] QUERY OK source="sources" db=0.3ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:54.526 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-22 15:01:06Z], 3] 10:24:54.527 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "f141e029-0c4c-4119-8c7b-4d085b61d9ca", "ZhpmiMpVyZw", false, 1312, false, "https://www.youtube.com/watch?v=ZhpmiMpVyZw", 71, "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", false, false, 3, [], 1, ~U[2026-01-22 15:01:06Z], ~U[2026-10-17 08:24:54Z], ~U[2026-10-17 08:24:54Z], "I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "ZhpmiMpVyZw", 1312, false, "https://www.youtube.com/watch?v=ZhpmiMpVyZw", "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", false, 3, ~U[2026-01-22 15:01:06Z]] 10:24:54.528 [debug] QUERY OK source="sources" db=0.2ms idle=510.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:54.528 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:54.529 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [124860] 10:24:54.529 [debug] Current batch of media processed. Will check again in 1000ms 10:24:55.530 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1476, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", "id" => "mJgxlMp3x34", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mJgxlMp3x34", "playlist_index" => 72, "timestamp" => 1769698882, "title" => "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "upload_date" => "20260129"} 10:24:55.531 [debug] QUERY OK source="sources" db=0.2ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:55.531 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:55.532 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-29 15:01:22Z], 3] 10:24:55.534 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "81838a33-39dc-4993-89cf-477962e4abcc", "mJgxlMp3x34", false, 1476, false, "https://www.youtube.com/watch?v=mJgxlMp3x34", 72, "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", false, false, 3, [], 1, ~U[2026-01-29 15:01:22Z], ~U[2026-10-17 08:24:55Z], ~U[2026-10-17 08:24:55Z], "I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "mJgxlMp3x34", 1476, false, "https://www.youtube.com/watch?v=mJgxlMp3x34", "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", false, 3, ~U[2026-01-29 15:01:22Z]] 10:24:55.534 [debug] QUERY OK source="sources" db=0.1ms idle=514.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:55.534 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:55.535 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [127637] 10:24:55.535 [debug] Current batch of media processed. Will check again in 1000ms 10:24:56.536 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1929, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", "id" => "o4CgI8DjMPw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=o4CgI8DjMPw", "playlist_index" => 73, "timestamp" => 1770303689, "title" => "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "upload_date" => "20260205"} 10:24:56.537 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:56.538 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:56.538 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-05 15:01:29Z], 3] 10:24:56.540 [debug] QUERY OK source="media_items" db=1.3ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "4408b4e2-00b4-4dce-a8ff-83cfeb11e564", "o4CgI8DjMPw", false, 1929, false, "https://www.youtube.com/watch?v=o4CgI8DjMPw", 73, "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", false, false, 3, [], 1, ~U[2026-02-05 15:01:29Z], ~U[2026-10-17 08:24:56Z], ~U[2026-10-17 08:24:56Z], "I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "o4CgI8DjMPw", 1929, false, "https://www.youtube.com/watch?v=o4CgI8DjMPw", "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", false, 3, ~U[2026-02-05 15:01:29Z]] 10:24:56.541 [debug] QUERY OK source="sources" db=0.2ms idle=520.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:56.541 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:56.542 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [130670] 10:24:56.542 [debug] Current batch of media processed. Will check again in 1000ms 10:24:57.543 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1827, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", "id" => "gZRnKqaiy3k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gZRnKqaiy3k", "playlist_index" => 74, "timestamp" => 1770908476, "title" => "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "upload_date" => "20260212"} 10:24:57.544 [debug] QUERY OK source="sources" db=0.2ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:57.544 [debug] QUERY OK source="sources" db=0.1ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:57.545 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-12 15:01:16Z], 3] 10:24:57.547 [debug] QUERY OK source="media_items" db=1.0ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "f69f0c0c-c055-4b6c-bb7c-bd6e17a82420", "gZRnKqaiy3k", false, 1827, false, "https://www.youtube.com/watch?v=gZRnKqaiy3k", 74, "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", false, false, 3, [], 1, ~U[2026-02-12 15:01:16Z], ~U[2026-10-17 08:24:57Z], ~U[2026-10-17 08:24:57Z], "I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "gZRnKqaiy3k", 1827, false, "https://www.youtube.com/watch?v=gZRnKqaiy3k", "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", false, 3, ~U[2026-02-12 15:01:16Z]] 10:24:57.547 [debug] QUERY OK source="sources" db=0.3ms idle=525.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:57.548 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:57.548 [debug] QUERY OK source="media_items" db=0.3ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [133899] 10:24:57.549 [debug] Current batch of media processed. Will check again in 1000ms 10:24:58.549 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1488, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", "id" => "XPD5zoS3yLA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XPD5zoS3yLA", "playlist_index" => 75, "timestamp" => 1771513262, "title" => "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "upload_date" => "20260219"} 10:24:58.550 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:58.551 [debug] QUERY OK source="sources" db=0.2ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:58.551 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 15:01:02Z], 3] 10:24:58.553 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "15669160-5027-4076-ba08-24085c88d486", "XPD5zoS3yLA", false, 1488, false, "https://www.youtube.com/watch?v=XPD5zoS3yLA", 75, "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", false, false, 3, [], 1, ~U[2026-02-19 15:01:02Z], ~U[2026-10-17 08:24:58Z], ~U[2026-10-17 08:24:58Z], "I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "XPD5zoS3yLA", 1488, false, "https://www.youtube.com/watch?v=XPD5zoS3yLA", "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", false, 3, ~U[2026-02-19 15:01:02Z]] 10:24:58.553 [debug] QUERY OK source="sources" db=0.1ms idle=530.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:58.553 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:58.554 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [137079] 10:24:58.554 [debug] Current batch of media processed. Will check again in 1000ms 10:24:59.555 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "duration" => 1391, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", "id" => "Op8Tlzdn5eo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Op8Tlzdn5eo", "playlist_index" => 76, "timestamp" => 1772118051, "title" => "Vi har købt en 3D printer! | Livet på gården Ep. 78", "upload_date" => "20260226"} 10:24:59.556 [debug] QUERY OK source="sources" db=0.4ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:24:59.557 [debug] QUERY OK source="sources" db=0.3ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:59.558 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 15:00:51Z], 3] 10:24:59.560 [debug] QUERY OK source="media_items" db=1.6ms idle=1004.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi har købt en 3D printer! | Livet på gården Ep. 78", "94ca359d-ec47-489e-9796-317a84e38180", "Op8Tlzdn5eo", false, 1391, false, "https://www.youtube.com/watch?v=Op8Tlzdn5eo", 76, "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", false, false, 3, [], 1, ~U[2026-02-26 15:00:51Z], ~U[2026-10-17 08:24:59Z], ~U[2026-10-17 08:24:59Z], "Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi har købt en 3D printer! | Livet på gården Ep. 78", "Op8Tlzdn5eo", 1391, false, "https://www.youtube.com/watch?v=Op8Tlzdn5eo", "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", false, 3, ~U[2026-02-26 15:00:51Z]] 10:24:59.560 [debug] QUERY OK source="sources" db=0.1ms idle=537.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:24:59.561 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:24:59.561 [debug] QUERY OK source="media_items" db=0.2ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [140290] 10:24:59.561 [debug] Current batch of media processed. Will check again in 1000ms 10:25:00.562 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1601, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", "id" => "Th4fpPdHVU0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Th4fpPdHVU0", "playlist_index" => 77, "timestamp" => 1772722858, "title" => "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "upload_date" => "20260305"} 10:25:00.563 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:00.563 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:00.564 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-05 15:00:58Z], 3] 10:25:00.566 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "b89fb8b0-0f53-424a-bdfc-084a5dd7b364", "Th4fpPdHVU0", false, 1601, false, "https://www.youtube.com/watch?v=Th4fpPdHVU0", 77, "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", false, false, 3, [], 1, ~U[2026-03-05 15:00:58Z], ~U[2026-10-17 08:25:00Z], ~U[2026-10-17 08:25:00Z], "I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "Th4fpPdHVU0", 1601, false, "https://www.youtube.com/watch?v=Th4fpPdHVU0", "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", false, 3, ~U[2026-03-05 15:00:58Z]] 10:25:00.566 [debug] QUERY OK source="sources" db=0.1ms idle=540.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:00.567 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:00.567 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [143569] 10:25:00.567 [debug] Current batch of media processed. Will check again in 1000ms 10:25:00.866 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:25:00.959 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:25:01.568 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1829, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", "id" => "WZAGvRqldgo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WZAGvRqldgo", "playlist_index" => 78, "timestamp" => 1773327658, "title" => "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "upload_date" => "20260312"} 10:25:01.569 [debug] QUERY OK source="sources" db=0.2ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:01.570 [debug] QUERY OK source="sources" db=0.2ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:01.571 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=704.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 15:00:58Z], 3] 10:25:01.572 [debug] QUERY OK source="media_items" db=1.1ms idle=611.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "f4ea4eae-3fb3-46ce-998e-e6d8c89af0ae", "WZAGvRqldgo", false, 1829, false, "https://www.youtube.com/watch?v=WZAGvRqldgo", 78, "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", false, false, 3, [], 1, ~U[2026-03-12 15:00:58Z], ~U[2026-10-17 08:25:01Z], ~U[2026-10-17 08:25:01Z], "I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "WZAGvRqldgo", 1829, false, "https://www.youtube.com/watch?v=WZAGvRqldgo", "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", false, 3, ~U[2026-03-12 15:00:58Z]] 10:25:01.573 [debug] QUERY OK source="sources" db=0.1ms idle=545.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:01.573 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:01.574 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [146839] 10:25:01.574 [debug] Current batch of media processed. Will check again in 1000ms 10:25:02.575 [debug] Current batch of media processed. Will check again in 1000ms 10:25:03.576 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1440, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", "id" => "wvCb1ystnC0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wvCb1ystnC0", "playlist_index" => 79, "timestamp" => 1773932500, "title" => "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "upload_date" => "20260319"} 10:25:03.577 [debug] QUERY OK source="sources" db=0.2ms idle=547.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:03.577 [debug] QUERY OK source="sources" db=0.1ms idle=265.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:03.578 [debug] QUERY OK source="media_items" db=0.4ms idle=265.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-19 15:01:40Z], 3] 10:25:03.579 [debug] QUERY OK source="media_items" db=0.9ms idle=266.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "dfaa388d-2007-48b9-a831-9301b38a7766", "wvCb1ystnC0", false, 1440, false, "https://www.youtube.com/watch?v=wvCb1ystnC0", 79, "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", false, false, 3, [], 1, ~U[2026-03-19 15:01:40Z], ~U[2026-10-17 08:25:03Z], ~U[2026-10-17 08:25:03Z], "I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "wvCb1ystnC0", 1440, false, "https://www.youtube.com/watch?v=wvCb1ystnC0", "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", false, 3, ~U[2026-03-19 15:01:40Z]] 10:25:03.580 [debug] QUERY OK source="sources" db=0.1ms idle=267.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:03.580 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:03.581 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [150144] 10:25:03.581 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1393, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", "id" => "pxD1_Ax0eMI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pxD1_Ax0eMI", "playlist_index" => 80, "timestamp" => 1774537291, "title" => "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "upload_date" => "20260326"} 10:25:03.582 [debug] QUERY OK source="sources" db=0.3ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:03.582 [debug] QUERY OK source="sources" db=0.2ms idle=2.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:03.583 [debug] QUERY OK source="media_items" db=0.5ms idle=2.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 15:01:31Z], 3] 10:25:03.584 [debug] QUERY OK source="media_items" db=0.9ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "f470214d-d3e7-454a-ae9d-6954a6ca5da7", "pxD1_Ax0eMI", false, 1393, false, "https://www.youtube.com/watch?v=pxD1_Ax0eMI", 80, "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", false, false, 3, [], 1, ~U[2026-03-26 15:01:31Z], ~U[2026-10-17 08:25:03Z], ~U[2026-10-17 08:25:03Z], "I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "pxD1_Ax0eMI", 1393, false, "https://www.youtube.com/watch?v=pxD1_Ax0eMI", "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", false, 3, ~U[2026-03-26 15:01:31Z]] 10:25:03.585 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:03.585 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:03.586 [debug] QUERY OK source="media_items" db=0.3ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [153491] 10:25:03.586 [debug] Current batch of media processed. Will check again in 1000ms 10:25:04.587 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1291, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", "id" => "dZk6prUzZkw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZk6prUzZkw", "playlist_index" => 81, "timestamp" => 1775138455, "title" => "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "upload_date" => "20260402"} 10:25:04.588 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:04.588 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:04.589 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 14:00:55Z], 3] 10:25:04.591 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "ecfc3b1e-a4d2-4e89-af5a-754af002b7bc", "dZk6prUzZkw", false, 1291, false, "https://www.youtube.com/watch?v=dZk6prUzZkw", 81, "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", false, false, 3, [], 1, ~U[2026-04-02 14:00:55Z], ~U[2026-10-17 08:25:04Z], ~U[2026-10-17 08:25:04Z], "I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "dZk6prUzZkw", 1291, false, "https://www.youtube.com/watch?v=dZk6prUzZkw", "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", false, 3, ~U[2026-04-02 14:00:55Z]] 10:25:04.591 [debug] QUERY OK source="sources" db=0.2ms idle=559.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:04.592 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:04.592 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [156908] 10:25:04.592 [debug] Current batch of media processed. Will check again in 1000ms 10:25:05.593 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1232, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", "id" => "SIJsPP2BFVw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=SIJsPP2BFVw", "playlist_index" => 82, "timestamp" => 1776348044, "title" => "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "upload_date" => "20260416"} 10:25:05.594 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:05.594 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:05.595 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 14:00:44Z], 3] 10:25:05.597 [debug] QUERY OK source="media_items" db=1.4ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "473819ff-a667-4377-bef0-90d405394c1e", "SIJsPP2BFVw", false, 1232, false, "https://www.youtube.com/watch?v=SIJsPP2BFVw", 82, "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", false, false, 3, [], 1, ~U[2026-04-16 14:00:44Z], ~U[2026-10-17 08:25:05Z], ~U[2026-10-17 08:25:05Z], "I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "SIJsPP2BFVw", 1232, false, "https://www.youtube.com/watch?v=SIJsPP2BFVw", "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", false, 3, ~U[2026-04-16 14:00:44Z]] 10:25:05.597 [debug] QUERY OK source="sources" db=0.2ms idle=565.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:05.598 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:05.599 [debug] QUERY OK source="media_items" db=0.6ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [163716] 10:25:05.599 [debug] Current batch of media processed. Will check again in 1000ms 10:25:06.600 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1621, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", "id" => "da0fXptSlUY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=da0fXptSlUY", "playlist_index" => 83, "timestamp" => 1776952860, "title" => "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "upload_date" => "20260423"} 10:25:06.601 [debug] QUERY OK source="sources" db=0.3ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:06.601 [debug] QUERY OK source="sources" db=0.1ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:06.602 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 14:01:00Z], 3] 10:25:06.604 [debug] QUERY OK source="media_items" db=1.3ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "7ef72058-a0f0-4274-be0a-03b0e7b3a09a", "da0fXptSlUY", false, 1621, false, "https://www.youtube.com/watch?v=da0fXptSlUY", 83, "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", false, false, 3, [], 1, ~U[2026-04-23 14:01:00Z], ~U[2026-10-17 08:25:06Z], ~U[2026-10-17 08:25:06Z], "I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "da0fXptSlUY", 1621, false, "https://www.youtube.com/watch?v=da0fXptSlUY", "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", false, 3, ~U[2026-04-23 14:01:00Z]] 10:25:06.605 [debug] QUERY OK source="sources" db=0.3ms idle=571.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:06.606 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 10:25:06.606 [debug] QUERY OK source="media_items" db=0.5ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [167235] 10:25:06.607 [debug] Current batch of media processed. Will check again in 1000ms 10:25:07.607 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1577, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", "id" => "UmaRjrKDD40", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UmaRjrKDD40", "playlist_index" => 84, "timestamp" => 1777557660, "title" => "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "upload_date" => "20260430"} 10:25:07.608 [debug] QUERY OK source="sources" db=0.2ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:07.608 [debug] QUERY OK source="sources" db=0.1ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:07.609 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 14:01:00Z], 3] 10:25:07.611 [debug] QUERY OK source="media_items" db=1.3ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "6ce8c8f2-9524-4904-846f-be24ef9584bd", "UmaRjrKDD40", false, 1577, false, "https://www.youtube.com/watch?v=UmaRjrKDD40", 84, "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", false, false, 3, [], 1, ~U[2026-04-30 14:01:00Z], ~U[2026-10-17 08:25:07Z], ~U[2026-10-17 08:25:07Z], "I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "UmaRjrKDD40", 1577, false, "https://www.youtube.com/watch?v=UmaRjrKDD40", "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", false, 3, ~U[2026-04-30 14:01:00Z]] 10:25:07.611 [debug] QUERY OK source="sources" db=0.1ms idle=575.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:07.612 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:07.613 [debug] QUERY OK source="media_items" db=0.3ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [170380] 10:25:07.613 [debug] Current batch of media processed. Will check again in 1000ms 10:25:08.613 [debug] Current batch of media processed. Will check again in 1000ms 10:25:09.614 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1852, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", "id" => "RJWBKBicq0Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RJWBKBicq0Q", "playlist_index" => 85, "timestamp" => 1778164608, "title" => "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "upload_date" => "20260507"} 10:25:09.615 [debug] QUERY OK source="sources" db=0.3ms idle=575.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:09.616 [debug] QUERY OK source="sources" db=0.2ms idle=303.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:09.616 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=303.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-07 14:36:48Z], 3] 10:25:09.618 [debug] QUERY OK source="media_items" db=1.3ms idle=304.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "b17649f7-bbb0-44b6-b93c-b016b0508125", "RJWBKBicq0Q", false, 1852, false, "https://www.youtube.com/watch?v=RJWBKBicq0Q", 85, "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", false, false, 3, [], 1, ~U[2026-05-07 14:36:48Z], ~U[2026-10-17 08:25:09Z], ~U[2026-10-17 08:25:09Z], "I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "RJWBKBicq0Q", 1852, false, "https://www.youtube.com/watch?v=RJWBKBicq0Q", "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", false, 3, ~U[2026-05-07 14:36:48Z]] 10:25:09.619 [debug] QUERY OK source="sources" db=0.2ms idle=306.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:09.619 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:09.620 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [173871] 10:25:09.620 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1704, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", "id" => "YXmL6qrY1G0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=YXmL6qrY1G0", "playlist_index" => 86, "timestamp" => 1778767249, "title" => "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "upload_date" => "20260514"} 10:25:09.621 [debug] QUERY OK source="sources" db=0.3ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:09.621 [debug] QUERY OK source="sources" db=0.2ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:09.622 [debug] QUERY OK source="media_items" db=0.5ms idle=2.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-14 14:00:49Z], 3] 10:25:09.624 [debug] QUERY OK source="media_items" db=1.0ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "1526cec7-8237-4d18-93e3-6ecbb37365af", "YXmL6qrY1G0", false, 1704, false, "https://www.youtube.com/watch?v=YXmL6qrY1G0", 86, "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", false, false, 3, [], 1, ~U[2026-05-14 14:00:49Z], ~U[2026-10-17 08:25:09Z], ~U[2026-10-17 08:25:09Z], "I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "YXmL6qrY1G0", 1704, false, "https://www.youtube.com/watch?v=YXmL6qrY1G0", "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", false, 3, ~U[2026-05-14 14:00:49Z]] 10:25:09.625 [debug] QUERY OK source="sources" db=0.4ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:09.625 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:09.626 [debug] QUERY OK source="media_items" db=0.5ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [177389] 10:25:09.626 [debug] Current batch of media processed. Will check again in 1000ms 10:25:10.627 [debug] Current batch of media processed. Will check again in 1000ms 10:25:11.628 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 2166, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", "id" => "7HdqBREGHtA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7HdqBREGHtA", "playlist_index" => 87, "timestamp" => 1779372609, "title" => "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "upload_date" => "20260521"} 10:25:11.629 [debug] QUERY OK source="sources" db=0.2ms idle=587.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:11.630 [debug] QUERY OK source="sources" db=0.2ms idle=317.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:11.631 [debug] QUERY OK source="media_items" db=0.5ms queue=0.3ms idle=317.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-21 14:10:09Z], 3] 10:25:11.633 [debug] QUERY OK source="media_items" db=1.3ms idle=318.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "96e7cd11-d760-4fc8-8e0a-f72fc239d18b", "7HdqBREGHtA", false, 2166, false, "https://www.youtube.com/watch?v=7HdqBREGHtA", 87, "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", false, false, 3, [], 1, ~U[2026-05-21 14:10:09Z], ~U[2026-10-17 08:25:11Z], ~U[2026-10-17 08:25:11Z], "I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "7HdqBREGHtA", 2166, false, "https://www.youtube.com/watch?v=7HdqBREGHtA", "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", false, 3, ~U[2026-05-21 14:10:09Z]] 10:25:11.633 [debug] QUERY OK source="sources" db=0.2ms idle=320.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:11.634 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:11.635 [debug] QUERY OK source="media_items" db=0.5ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [180439] 10:25:11.635 [debug] Current batch of media processed. Will check again in 1000ms 10:25:12.635 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1557, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", "id" => "Ndtyto4SfDs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Ndtyto4SfDs", "playlist_index" => 88, "timestamp" => 1779976838, "title" => "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "upload_date" => "20260528"} 10:25:12.636 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:12.637 [debug] QUERY OK source="sources" db=0.3ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:12.638 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-28 14:00:38Z], 3] 10:25:12.641 [debug] QUERY OK source="media_items" db=1.6ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "b92297f3-6873-40fb-9261-3dcf52bac44a", "Ndtyto4SfDs", false, 1557, false, "https://www.youtube.com/watch?v=Ndtyto4SfDs", 88, "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", false, false, 3, [], 1, ~U[2026-05-28 14:00:38Z], ~U[2026-10-17 08:25:12Z], ~U[2026-10-17 08:25:12Z], "Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "Ndtyto4SfDs", 1557, false, "https://www.youtube.com/watch?v=Ndtyto4SfDs", "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", false, 3, ~U[2026-05-28 14:00:38Z]] 10:25:12.642 [debug] QUERY OK source="sources" db=0.8ms idle=598.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:12.642 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:12.643 [debug] QUERY OK source="media_items" db=0.2ms idle=5.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [184502] 10:25:12.643 [debug] Current batch of media processed. Will check again in 1000ms 10:25:13.644 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1465, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", "id" => "f16_HDKB4SQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f16_HDKB4SQ", "playlist_index" => 89, "timestamp" => 1780581603, "title" => "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "upload_date" => "20260604"} 10:25:13.645 [debug] QUERY OK source="sources" db=0.4ms idle=1004.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:13.646 [debug] QUERY OK source="sources" db=0.2ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:13.646 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-04 14:00:03Z], 3] 10:25:13.650 [debug] QUERY OK source="media_items" db=3.3ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "5cb43683-b989-4474-a5ad-387793dc6c4f", "f16_HDKB4SQ", false, 1465, false, "https://www.youtube.com/watch?v=f16_HDKB4SQ", 89, "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", false, false, 3, [], 1, ~U[2026-06-04 14:00:03Z], ~U[2026-10-17 08:25:13Z], ~U[2026-10-17 08:25:13Z], "I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "f16_HDKB4SQ", 1465, false, "https://www.youtube.com/watch?v=f16_HDKB4SQ", "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", false, 3, ~U[2026-06-04 14:00:03Z]] 10:25:13.651 [debug] QUERY OK source="sources" db=0.2ms idle=607.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:13.652 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:13.652 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [187864] 10:25:13.653 [debug] Current batch of media processed. Will check again in 1000ms 10:25:14.653 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1786, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", "id" => "n93gXkFbEZc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=n93gXkFbEZc", "playlist_index" => 90, "timestamp" => 1781186434, "title" => "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "upload_date" => "20260611"} 10:25:14.654 [debug] QUERY OK source="sources" db=0.5ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:14.655 [debug] QUERY OK source="sources" db=0.3ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:14.656 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-11 14:00:34Z], 3] 10:25:14.658 [debug] QUERY OK source="media_items" db=1.4ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "64af73fe-aeae-48e6-9a35-11fb6ec435e4", "n93gXkFbEZc", false, 1786, false, "https://www.youtube.com/watch?v=n93gXkFbEZc", 90, "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", false, false, 3, [], 1, ~U[2026-06-11 14:00:34Z], ~U[2026-10-17 08:25:14Z], ~U[2026-10-17 08:25:14Z], "I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "n93gXkFbEZc", 1786, false, "https://www.youtube.com/watch?v=n93gXkFbEZc", "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", false, 3, ~U[2026-06-11 14:00:34Z]] 10:25:14.659 [debug] QUERY OK source="sources" db=0.3ms idle=614.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:14.659 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:14.660 [debug] QUERY OK source="media_items" db=0.3ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [191201] 10:25:14.660 [debug] Current batch of media processed. Will check again in 1000ms 10:25:15.661 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1864, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", "id" => "PnawT2un6OQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PnawT2un6OQ", "playlist_index" => 91, "timestamp" => 1781791230, "title" => "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "upload_date" => "20260618"} 10:25:15.662 [debug] QUERY OK source="sources" db=0.4ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:15.663 [debug] QUERY OK source="sources" db=0.1ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:15.663 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-18 14:00:30Z], 3] 10:25:15.671 [debug] QUERY OK source="media_items" db=7.0ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "b24898dd-7492-4c59-a3df-5615d0b5cb6a", "PnawT2un6OQ", false, 1864, false, "https://www.youtube.com/watch?v=PnawT2un6OQ", 91, "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", false, false, 3, [], 1, ~U[2026-06-18 14:00:30Z], ~U[2026-10-17 08:25:15Z], ~U[2026-10-17 08:25:15Z], "Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "PnawT2un6OQ", 1864, false, "https://www.youtube.com/watch?v=PnawT2un6OQ", "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", false, 3, ~U[2026-06-18 14:00:30Z]] 10:25:15.672 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=626.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:15.673 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:15.674 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=10.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [194710] 10:25:15.674 [debug] Current batch of media processed. Will check again in 1000ms 10:25:16.675 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1619, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", "id" => "_yVgsAnBwjQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_yVgsAnBwjQ", "playlist_index" => 92, "timestamp" => 1782396035, "title" => "En stor gave og keramikproduktion | Livet på gården Ep. 94", "upload_date" => "20260625"} 10:25:16.676 [debug] QUERY OK source="sources" db=0.3ms idle=1004.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:16.677 [debug] QUERY OK source="sources" db=0.1ms idle=1004.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:16.677 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1003.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-25 14:00:35Z], 3] 10:25:16.679 [debug] QUERY OK source="media_items" db=1.3ms idle=1003.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En stor gave og keramikproduktion | Livet på gården Ep. 94", "d336914c-399d-43f1-b72d-6de9649fdbfb", "_yVgsAnBwjQ", false, 1619, false, "https://www.youtube.com/watch?v=_yVgsAnBwjQ", 92, "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", false, false, 3, [], 1, ~U[2026-06-25 14:00:35Z], ~U[2026-10-17 08:25:16Z], ~U[2026-10-17 08:25:16Z], "I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En stor gave og keramikproduktion | Livet på gården Ep. 94", "_yVgsAnBwjQ", 1619, false, "https://www.youtube.com/watch?v=_yVgsAnBwjQ", "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", false, 3, ~U[2026-06-25 14:00:35Z]] 10:25:16.680 [debug] QUERY OK source="sources" db=0.2ms idle=633.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:16.680 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:16.681 [debug] QUERY OK source="media_items" db=0.4ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [198180] 10:25:16.681 [debug] Current batch of media processed. Will check again in 1000ms 10:25:17.682 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1577, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", "id" => "B_bPtvpGVx4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=B_bPtvpGVx4", "playlist_index" => 93, "timestamp" => 1783000821, "title" => "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "upload_date" => "20260702"} 10:25:17.683 [debug] QUERY OK source="sources" db=0.4ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:17.684 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:17.685 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-02 14:00:21Z], 3] 10:25:17.686 [debug] QUERY OK source="media_items" db=1.2ms idle=1003.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "375ad55d-1f72-4f3b-b6c8-8927d6e34b5b", "B_bPtvpGVx4", false, 1577, false, "https://www.youtube.com/watch?v=B_bPtvpGVx4", 93, "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", false, false, 3, [], 1, ~U[2026-07-02 14:00:21Z], ~U[2026-10-17 08:25:17Z], ~U[2026-10-17 08:25:17Z], "Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "B_bPtvpGVx4", 1577, false, "https://www.youtube.com/watch?v=B_bPtvpGVx4", "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", false, 3, ~U[2026-07-02 14:00:21Z]] 10:25:17.687 [debug] QUERY OK source="sources" db=0.3ms idle=639.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:17.688 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:17.688 [debug] QUERY OK source="media_items" db=0.3ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [201686] 10:25:17.688 [debug] Current batch of media processed. Will check again in 1000ms 10:25:18.689 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1588, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", "id" => "DDVRQGOAxZs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DDVRQGOAxZs", "playlist_index" => 94, "timestamp" => 1783605616, "title" => "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "upload_date" => "20260709"} 10:25:18.690 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:18.691 [debug] QUERY OK source="sources" db=0.3ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:18.692 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-09 14:00:16Z], 3] 10:25:18.694 [debug] QUERY OK source="media_items" db=1.5ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "07d6ae16-b92e-4b73-a277-a15562b27e8c", "DDVRQGOAxZs", false, 1588, false, "https://www.youtube.com/watch?v=DDVRQGOAxZs", 94, "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", false, false, 3, [], 1, ~U[2026-07-09 14:00:16Z], ~U[2026-10-17 08:25:18Z], ~U[2026-10-17 08:25:18Z], "I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "DDVRQGOAxZs", 1588, false, "https://www.youtube.com/watch?v=DDVRQGOAxZs", "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", false, 3, ~U[2026-07-09 14:00:16Z]] 10:25:18.695 [debug] QUERY OK source="sources" db=0.4ms idle=646.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:18.696 [debug] QUERY OK source="media_profiles" db=0.5ms idle=4.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:18.696 [debug] QUERY OK source="media_items" db=0.5ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [205215] 10:25:18.697 [debug] Current batch of media processed. Will check again in 1000ms 10:25:19.697 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 2296, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", "id" => "nVHF5b2mfcg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nVHF5b2mfcg", "playlist_index" => 95, "timestamp" => 1784815227, "title" => "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "upload_date" => "20260723"} 10:25:19.698 [debug] QUERY OK source="sources" db=0.3ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:19.699 [debug] QUERY OK source="sources" db=0.1ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:19.699 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-23 14:00:27Z], 3] 10:25:19.701 [debug] QUERY OK source="media_items" db=1.2ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "1574bb52-fa20-4dcd-829c-4edd8a01bf58", "nVHF5b2mfcg", false, 2296, false, "https://www.youtube.com/watch?v=nVHF5b2mfcg", 95, "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", false, false, 3, [], 1, ~U[2026-07-23 14:00:27Z], ~U[2026-10-17 08:25:19Z], ~U[2026-10-17 08:25:19Z], "Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "nVHF5b2mfcg", 2296, false, "https://www.youtube.com/watch?v=nVHF5b2mfcg", "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", false, 3, ~U[2026-07-23 14:00:27Z]] 10:25:19.702 [debug] QUERY OK source="sources" db=0.1ms idle=652.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:19.702 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:19.703 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [212241] 10:25:19.703 [debug] Current batch of media processed. Will check again in 1000ms 10:25:20.703 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1613, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", "id" => "ay_WnFmck9s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ay_WnFmck9s", "playlist_index" => 96, "timestamp" => 1785420002, "title" => "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "upload_date" => "20260730"} 10:25:20.704 [debug] QUERY OK source="sources" db=0.3ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:20.705 [debug] QUERY OK source="sources" db=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:20.705 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-30 14:00:02Z], 3] 10:25:20.707 [debug] QUERY OK source="media_items" db=1.3ms idle=1003.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "2c3dc13e-ef4c-445d-8bfc-dab66111bb51", "ay_WnFmck9s", false, 1613, false, "https://www.youtube.com/watch?v=ay_WnFmck9s", 96, "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", false, false, 3, [], 1, ~U[2026-07-30 14:00:02Z], ~U[2026-10-17 08:25:20Z], ~U[2026-10-17 08:25:20Z], "I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "ay_WnFmck9s", 1613, false, "https://www.youtube.com/watch?v=ay_WnFmck9s", "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", false, 3, ~U[2026-07-30 14:00:02Z]] 10:25:20.708 [debug] QUERY OK source="sources" db=0.2ms idle=657.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:20.708 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:20.709 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [215043] 10:25:20.709 [debug] Current batch of media processed. Will check again in 1000ms 10:25:21.710 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1593, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", "id" => "hEbBs6J6HSM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hEbBs6J6HSM", "playlist_index" => 97, "timestamp" => 1786024802, "title" => "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "upload_date" => "20260806"} 10:25:21.711 [debug] QUERY OK source="sources" db=0.2ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:21.712 [debug] QUERY OK source="sources" db=0.1ms idle=1003.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:21.712 [debug] QUERY OK source="media_items" db=0.6ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-06 14:00:02Z], 3] 10:25:21.715 [debug] QUERY OK source="media_items" db=1.4ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "6cfda61a-dc94-43bc-b6e7-3442832719b7", "hEbBs6J6HSM", false, 1593, false, "https://www.youtube.com/watch?v=hEbBs6J6HSM", 97, "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", false, false, 3, [], 1, ~U[2026-08-06 14:00:02Z], ~U[2026-10-17 08:25:21Z], ~U[2026-10-17 08:25:21Z], "Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "hEbBs6J6HSM", 1593, false, "https://www.youtube.com/watch?v=hEbBs6J6HSM", "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", false, 3, ~U[2026-08-06 14:00:02Z]] 10:25:21.715 [debug] QUERY OK source="sources" db=0.3ms idle=663.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:21.716 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:21.716 [debug] QUERY OK source="media_items" db=0.2ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [218665] 10:25:21.716 [debug] Current batch of media processed. Will check again in 1000ms 10:25:22.717 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 2197, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", "id" => "s3kP8lEsOEQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=s3kP8lEsOEQ", "playlist_index" => 98, "timestamp" => 1787234433, "title" => "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "upload_date" => "20260820"} 10:25:22.718 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:22.718 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:22.719 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-20 14:00:33Z], 3] 10:25:22.721 [debug] QUERY OK source="media_items" db=1.3ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "411aa3f3-8f01-4e99-9b8b-97290845976e", "s3kP8lEsOEQ", false, 2197, false, "https://www.youtube.com/watch?v=s3kP8lEsOEQ", 98, "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", false, false, 3, [], 1, ~U[2026-08-20 14:00:33Z], ~U[2026-10-17 08:25:22Z], ~U[2026-10-17 08:25:22Z], "I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "s3kP8lEsOEQ", 2197, false, "https://www.youtube.com/watch?v=s3kP8lEsOEQ", "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", false, 3, ~U[2026-08-20 14:00:33Z]] 10:25:22.721 [debug] QUERY OK source="sources" db=0.1ms idle=669.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:22.722 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:22.722 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [225855] 10:25:22.722 [debug] Current batch of media processed. Will check again in 1000ms 10:25:23.723 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1119, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", "id" => "EPOSOFmeG0o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=EPOSOFmeG0o", "playlist_index" => 99, "timestamp" => 1787839213, "title" => "Videre med renovering og nye høns! | Livet på gården Ep. 101", "upload_date" => "20260827"} 10:25:23.724 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:23.724 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:23.727 [debug] QUERY OK source="media_items" db=2.0ms idle=1002.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-27 14:00:13Z], 3] 10:25:23.729 [debug] QUERY OK source="media_items" db=1.3ms idle=1004.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Videre med renovering og nye høns! | Livet på gården Ep. 101", "a0de6f10-d251-4972-b5e5-ccdc986bcfe7", "EPOSOFmeG0o", false, 1119, false, "https://www.youtube.com/watch?v=EPOSOFmeG0o", 99, "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", false, false, 3, [], 1, ~U[2026-08-27 14:00:13Z], ~U[2026-10-17 08:25:23Z], ~U[2026-10-17 08:25:23Z], "I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Videre med renovering og nye høns! | Livet på gården Ep. 101", "EPOSOFmeG0o", 1119, false, "https://www.youtube.com/watch?v=EPOSOFmeG0o", "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", false, 3, ~U[2026-08-27 14:00:13Z]] 10:25:23.729 [debug] QUERY OK source="sources" db=0.2ms idle=676.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:23.730 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:23.730 [debug] QUERY OK source="media_items" db=0.2ms idle=5.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [229628] 10:25:23.731 [debug] Current batch of media processed. Will check again in 1000ms 10:25:24.731 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1288, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", "id" => "X9r5hiSunVQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=X9r5hiSunVQ", "playlist_index" => 100, "timestamp" => 1788444022, "title" => "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "upload_date" => "20260903"} 10:25:24.732 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:24.732 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:24.733 [debug] QUERY OK source="media_items" db=0.6ms idle=1002.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-03 14:00:22Z], 3] 10:25:24.742 [debug] QUERY OK source="media_items" db=8.3ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "541e65c7-802d-4b05-9437-d338cfe10f4a", "X9r5hiSunVQ", false, 1288, false, "https://www.youtube.com/watch?v=X9r5hiSunVQ", 100, "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", false, false, 3, [], 1, ~U[2026-09-03 14:00:22Z], ~U[2026-10-17 08:25:24Z], ~U[2026-10-17 08:25:24Z], "I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "X9r5hiSunVQ", 1288, false, "https://www.youtube.com/watch?v=X9r5hiSunVQ", "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", false, 3, ~U[2026-09-03 14:00:22Z]] 10:25:24.743 [debug] QUERY OK source="sources" db=0.2ms idle=688.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:24.743 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=11.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:24.744 [debug] QUERY OK source="media_items" db=0.3ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [233329] 10:25:24.744 [debug] Current batch of media processed. Will check again in 1000ms 10:25:25.745 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1227, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", "id" => "kg2u-aUyisg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kg2u-aUyisg", "playlist_index" => 101, "timestamp" => 1789048809, "title" => "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "upload_date" => "20260910"} 10:25:25.746 [debug] QUERY OK source="sources" db=0.2ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:25.746 [debug] QUERY OK source="sources" db=0.1ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:25.747 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-10 14:00:09Z], 3] 10:25:25.751 [debug] QUERY OK source="media_items" db=3.0ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "9a3f5058-8ea2-4eca-9ae6-5d2364dc3686", "kg2u-aUyisg", false, 1227, false, "https://www.youtube.com/watch?v=kg2u-aUyisg", 101, "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", false, false, 3, [], 1, ~U[2026-09-10 14:00:09Z], ~U[2026-10-17 08:25:25Z], ~U[2026-10-17 08:25:25Z], "I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "kg2u-aUyisg", 1227, false, "https://www.youtube.com/watch?v=kg2u-aUyisg", "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", false, 3, ~U[2026-09-10 14:00:09Z]] 10:25:25.751 [debug] QUERY OK source="sources" db=0.2ms idle=696.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:25.752 [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" = ?) [1] 10:25:25.753 [debug] QUERY OK source="media_items" db=0.4ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [237089] 10:25:25.753 [debug] Current batch of media processed. Will check again in 1000ms 10:25:26.754 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1322, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", "id" => "bOCzjIQs9r0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bOCzjIQs9r0", "playlist_index" => 102, "timestamp" => 1789653608, "title" => "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "upload_date" => "20260917"} 10:25:26.755 [debug] QUERY OK source="sources" db=0.2ms idle=1004.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:26.755 [debug] QUERY OK source="sources" db=0.1ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:26.756 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-17 14:00:08Z], 3] 10:25:26.758 [debug] QUERY OK source="media_items" db=1.1ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "e865bfb2-c472-49e5-a2b1-2de33ebebf28", "bOCzjIQs9r0", false, 1322, false, "https://www.youtube.com/watch?v=bOCzjIQs9r0", 102, "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", false, false, 3, [], 1, ~U[2026-09-17 14:00:08Z], ~U[2026-10-17 08:25:26Z], ~U[2026-10-17 08:25:26Z], "I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "bOCzjIQs9r0", 1322, false, "https://www.youtube.com/watch?v=bOCzjIQs9r0", "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", false, 3, ~U[2026-09-17 14:00:08Z]] 10:25:26.758 [debug] QUERY OK source="sources" db=0.3ms idle=702.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:26.759 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:26.760 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [240776] 10:25:26.760 [debug] Current batch of media processed. Will check again in 1000ms 10:25:27.760 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1721, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", "id" => "j38sPZsOlqk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=j38sPZsOlqk", "playlist_index" => 103, "timestamp" => 1790258405, "title" => "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "upload_date" => "20260924"} 10:25:27.761 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:27.761 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:27.762 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-24 14:00:05Z], 3] 10:25:27.769 [debug] QUERY OK source="media_items" db=6.5ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "d8520c92-d87a-4a1e-accf-96bb8313d981", "j38sPZsOlqk", false, 1721, false, "https://www.youtube.com/watch?v=j38sPZsOlqk", 103, "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", false, false, 3, [], 1, ~U[2026-09-24 14:00:05Z], ~U[2026-10-17 08:25:27Z], ~U[2026-10-17 08:25:27Z], "I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "j38sPZsOlqk", 1721, false, "https://www.youtube.com/watch?v=j38sPZsOlqk", "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", false, 3, ~U[2026-09-24 14:00:05Z]] 10:25:27.770 [debug] QUERY OK source="sources" db=0.2ms idle=712.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:27.770 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:27.771 [debug] QUERY OK source="media_items" db=0.3ms idle=9.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [244694] 10:25:27.771 [debug] Current batch of media processed. Will check again in 1000ms 10:25:28.772 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "duration" => 1578, "filename" => "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", "id" => "_I53PIcgfQw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_I53PIcgfQw", "playlist_index" => 104, "timestamp" => 1790863217, "title" => "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "upload_date" => "20261001"} 10:25:28.773 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:28.774 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:28.775 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-01 14:00:17Z], 3] 10:25:28.777 [debug] QUERY OK source="media_items" db=1.0ms idle=1004.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "34c9f958-1e82-4704-a871-9c172af4a6fb", "_I53PIcgfQw", false, 1578, false, "https://www.youtube.com/watch?v=_I53PIcgfQw", 104, "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", false, false, 3, [], 1, ~U[2026-10-01 14:00:17Z], ~U[2026-10-17 08:25:28Z], ~U[2026-10-17 08:25:28Z], "I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "_I53PIcgfQw", 1578, false, "https://www.youtube.com/watch?v=_I53PIcgfQw", "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", false, 3, ~U[2026-10-01 14:00:17Z]] 10:25:28.777 [debug] QUERY OK source="sources" db=0.3ms idle=718.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:28.778 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:25:28.779 [debug] QUERY OK source="media_items" db=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [248507] 10:25:28.779 [debug] Current batch of media processed. Will check again in 1000ms 10:25:29.418 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLQJc0AKwP-an6_0X-ZX9pzXAHn5pQXqTd --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/shows/Livet på gården/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/14/57/1457e79549f77ab92482b252e1316576d3aeb18ee19fc4da135688ab45e7f1b0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 10:25:29.422 [debug] Gracefully stopping file follower 10:25:29.423 [debug] QUERY OK source="sources" db=0.9ms idle=645.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 10:25:29.425 [debug] QUERY OK source="sources" db=0.3ms idle=647.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.426 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=646.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-09 08:00:00Z], 3] 10:25:29.428 [debug] QUERY OK source="media_items" db=0.8ms idle=647.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "761d3978-bbef-4491-b606-b2dd10da9e75", "0HQ2lA9SaEw", false, 1584, false, "https://www.youtube.com/watch?v=0HQ2lA9SaEw", 1, "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", false, false, 3, [], 1, ~U[2024-05-09 08:00:00Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Sikke jeg har glædet mig til endelig at kunne dele denne rejse med jer. Vi er flyttet på landet! Jeg er tilbage på youtube og har taget hul på en ny begyndelse - mellem marker, dyr, og alt det andet som følger med at bo på landet. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Rotter og høns på en rasteplads | Livet på gården Ep. 1", "0HQ2lA9SaEw", 1584, false, "https://www.youtube.com/watch?v=0HQ2lA9SaEw", "/downloads/shows/Livet på gården/Season 2024/s2024e050900 - Rotter og høns på en rasteplads | Livet på gården Ep. 1.mp4", false, 3, ~U[2024-05-09 08:00:00Z]] 10:25:29.429 [debug] QUERY OK source="sources" db=0.5ms idle=367.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.430 [debug] QUERY OK source="media_items" db=1.1ms idle=5.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-16 14:00:32Z], 3] 10:25:29.432 [debug] QUERY OK source="media_items" db=0.9ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får en hundehvalp | Livet på gården Ep. 2", "80a8c59e-f92b-4dd9-8f4e-d74deae56b11", "TsAkJcpR_Io", false, 1514, false, "https://www.youtube.com/watch?v=TsAkJcpR_Io", 2, "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", false, false, 3, [], 1, ~U[2024-05-16 14:00:32Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit henter vi vores hund Carla, begynder for alvor at pille huset fra hinanden og meget mere. Tak fordi du vil se med. Det betyder mere end du aner!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kriistinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får en hundehvalp | Livet på gården Ep. 2", "TsAkJcpR_Io", 1514, false, "https://www.youtube.com/watch?v=TsAkJcpR_Io", "/downloads/shows/Livet på gården/Season 2024/s2024e051600 - Vi får en hundehvalp | Livet på gården Ep. 2.mp4", false, 3, ~U[2024-05-16 14:00:32Z]] 10:25:29.433 [debug] QUERY OK source="sources" db=0.4ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.434 [debug] QUERY OK source="media_items" db=0.6ms idle=5.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-23 14:00:44Z], 3] 10:25:29.435 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi graver ud i huset | Livet på gården Ep.3", "47a348f2-ccc3-4a90-b335-bb815bd2a76c", "mzYiI1eVSe8", false, 1483, false, "https://www.youtube.com/watch?v=mzYiI1eVSe8", 3, "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", false, false, 3, [], 1, ~U[2024-05-23 14:00:44Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dagens afsnit er der mangel på overskud, og en hulens masse sand. Tak fordi du ser med \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\nTikTok: @kristinesloth4\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi graver ud i huset | Livet på gården Ep.3", "mzYiI1eVSe8", 1483, false, "https://www.youtube.com/watch?v=mzYiI1eVSe8", "/downloads/shows/Livet på gården/Season 2024/s2024e052300 - Vi graver ud i huset | Livet på gården Ep.3.mp4", false, 3, ~U[2024-05-23 14:00:44Z]] 10:25:29.437 [debug] QUERY OK source="sources" db=0.7ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.438 [debug] QUERY OK source="media_items" db=0.9ms idle=4.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-30 14:00:02Z], 3] 10:25:29.440 [debug] QUERY OK source="media_items" db=1.0ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "En hest i stuen og døde høns | Livet på gården Ep. 4", "057fc3ca-7e86-4c29-b2ab-c4c719fa2e00", "0jEgoy_T4E4", false, 2520, false, "https://www.youtube.com/watch?v=0jEgoy_T4E4", 4, "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", false, false, 3, [], 1, ~U[2024-05-30 14:00:02Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dagens afsnit bryder en hest ind i den lille ladelejlighed, der har været ubehageligt besøg i hønsehuset og så er der for alvor kommet gang i køkkenhaven. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "En hest i stuen og døde høns | Livet på gården Ep. 4", "0jEgoy_T4E4", 2520, false, "https://www.youtube.com/watch?v=0jEgoy_T4E4", "/downloads/shows/Livet på gården/Season 2024/s2024e053000 - En hest i stuen og døde høns | Livet på gården Ep. 4.mp4", false, 3, ~U[2024-05-30 14:00:02Z]] 10:25:29.441 [debug] QUERY OK source="sources" db=0.5ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.442 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=5.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-06 14:00:57Z], 3] 10:25:29.444 [debug] QUERY OK source="media_items" db=0.9ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får kyllinger og køkken | Livet på gården Ep.5", "28c8cd27-8f2a-40af-b257-e35201e3f7c2", "w_MEeum-cxQ", false, 2357, false, "https://www.youtube.com/watch?v=w_MEeum-cxQ", 5, "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", false, false, 3, [], 1, ~U[2024-06-06 14:00:57Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit får vores høne Karen kyllinger, vi renoverer stadig derudaf og så får vi leveret køkken. Tak fordi du ser med!\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vi får kyllinger og køkken | Livet på gården Ep.5", "w_MEeum-cxQ", 2357, false, "https://www.youtube.com/watch?v=w_MEeum-cxQ", "/downloads/shows/Livet på gården/Season 2024/s2024e060600 - Vi får kyllinger og køkken | Livet på gården Ep.5.mp4", false, 3, ~U[2024-06-06 14:00:57Z]] 10:25:29.444 [debug] QUERY OK source="sources" db=0.4ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.446 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=5.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-13 14:00:14Z], 3] 10:25:29.447 [debug] QUERY OK source="media_items" db=0.9ms idle=5.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "b7782900-4925-48b2-ad56-92aeea995b25", "LgpqgWbzuiM", false, 1911, false, "https://www.youtube.com/watch?v=LgpqgWbzuiM", 6, "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", false, false, 3, [], 1, ~U[2024-06-13 14:00:14Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne episode kan man roligt sige at der er kaos på gården. Midt i renoveringen får vi besøg af flere millioner blodmider, som er ved at suge blod fra alle hønsene. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6", "LgpqgWbzuiM", 1911, false, "https://www.youtube.com/watch?v=LgpqgWbzuiM", "/downloads/shows/Livet på gården/Season 2024/s2024e061300 - Kæmpe KAOS. Blodmider OVERALT! | Livet på gården Ep. 6.mp4", false, 3, ~U[2024-06-13 14:00:14Z]] 10:25:29.449 [debug] QUERY OK source="sources" db=0.6ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.450 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=5.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-20 14:00:44Z], 3] 10:25:29.453 [debug] QUERY OK source="media_items" db=1.8ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vores heste stikker af | Livet på gården Ep. 7", "c2349767-47a7-44c3-b8d3-41d19aeb599a", "tPMYODqzWfI", false, 1808, false, "https://www.youtube.com/watch?v=tPMYODqzWfI", 7, "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", false, false, 3, [], 1, ~U[2024-06-20 14:00:44Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er der mere kaos, både da vores heste stikker af om natten og en meget tung bordplade skal på plads. Og så er Mikkel udkørt. Meget udkørt.\r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Vores heste stikker af | Livet på gården Ep. 7", "tPMYODqzWfI", 1808, false, "https://www.youtube.com/watch?v=tPMYODqzWfI", "/downloads/shows/Livet på gården/Season 2024/s2024e062000 - Vores heste stikker af | Livet på gården Ep. 7.mp4", false, 3, ~U[2024-06-20 14:00:44Z]] 10:25:29.454 [debug] QUERY OK source="sources" db=0.6ms idle=7.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.456 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=6.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-27 14:00:03Z], 3] 10:25:29.458 [debug] QUERY OK source="media_items" db=1.0ms idle=8.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "a6e4c839-87b5-40f1-9044-0b1351bfd1c7", "5w4Zkb-V2fE", false, 2043, false, "https://www.youtube.com/watch?v=5w4Zkb-V2fE", 8, "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", false, false, 3, [], 1, ~U[2024-06-27 14:00:03Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er der vand OVERALT, heste flytter hjemmefra og så får vi virkelig rykket på sager i huset - hvilket er meget tiltrængt, da vinteren nærmer sig med hastige skridt. \r\n\r\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8", "5w4Zkb-V2fE", 2043, false, "https://www.youtube.com/watch?v=5w4Zkb-V2fE", "/downloads/shows/Livet på gården/Season 2024/s2024e062700 - Oversvømmelse og nyt badeværelse | Livet på gården Ep. 8.mp4", false, 3, ~U[2024-06-27 14:00:03Z]] 10:25:29.460 [debug] QUERY OK source="sources" db=1.5ms idle=7.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.462 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=7.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-04 14:00:14Z], 3] 10:25:29.464 [debug] QUERY OK source="media_items" db=1.6ms idle=8.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "House tour | Livet på gården Ep. 9", "538aa024-f7eb-488d-ab6b-3754827d772e", "KotEK3OaF80", false, 2059, false, "https://www.youtube.com/watch?v=KotEK3OaF80", 9, "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", false, false, 3, [], 1, ~U[2024-07-04 14:00:14Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit runder vi har for denne gang, flytter ind i huset og viser rundt.\n------------------------------------------------------------------------------------------------------------\r\n\r\n► MINE SOCIALE MEDIER\r\nInstagram: @kristiinesloth\r\n\r\n-----------------------------------------------------------------------------------------------------------------\r\n\r\nBuisness mail: business@kristinesloth.dk", "House tour | Livet på gården Ep. 9", "KotEK3OaF80", 2059, false, "https://www.youtube.com/watch?v=KotEK3OaF80", "/downloads/shows/Livet på gården/Season 2024/s2024e070400 - House tour | Livet på gården Ep. 9.mp4", false, 3, ~U[2024-07-04 14:00:14Z]] 10:25:29.466 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.467 [debug] QUERY OK source="media_items" db=0.9ms idle=8.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-18 14:00:09Z], 3] 10:25:29.469 [debug] QUERY OK source="media_items" db=1.7ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Måren har dræbt vores høns | Livet på gården Ep. 10", "b6cebd25-c0d3-483b-863b-f480fba47b31", "ACbhu-bCkCs", false, 1462, false, "https://www.youtube.com/watch?v=ACbhu-bCkCs", 10, "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", false, false, 3, [], 1, ~U[2024-07-18 14:00:09Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit har vi desværre haft besøg af måren som har taget liv af næsten alle vores høns, jeg udruger kyllinger i rugemaskine og så er der så småt ved at være gang i haven i det tidlige forår. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Måren har dræbt vores høns | Livet på gården Ep. 10", "ACbhu-bCkCs", 1462, false, "https://www.youtube.com/watch?v=ACbhu-bCkCs", "/downloads/shows/Livet på gården/Season 2024/s2024e071800 - Måren har dræbt vores høns | Livet på gården Ep. 10.mp4", false, 3, ~U[2024-07-18 14:00:09Z]] 10:25:29.475 [debug] QUERY OK source="sources" db=5.6ms queue=0.1ms idle=7.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.477 [debug] QUERY OK source="media_items" db=0.8ms idle=11.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-25 14:00:21Z], 3] 10:25:29.478 [debug] QUERY OK source="media_items" db=1.1ms idle=11.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nye høns og havearbejde | Livet på gården Ep. 11", "e0623e72-72a9-4386-ad09-ee3f296b5721", "Sk2CUC0pUsw", false, 1666, false, "https://www.youtube.com/watch?v=Sk2CUC0pUsw", 11, "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", false, false, 3, [], 1, ~U[2024-07-25 14:00:21Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit står hønsehuset endelig færdigt og der flytter nye damer ind i gården. Der er ogs fuld fart på rugemaskinen, dog med dårligt held. Og så er vi ved at gøre haven klar til sæsonen. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nye høns og havearbejde | Livet på gården Ep. 11", "Sk2CUC0pUsw", 1666, false, "https://www.youtube.com/watch?v=Sk2CUC0pUsw", "/downloads/shows/Livet på gården/Season 2024/s2024e072500 - Nye høns og havearbejde | Livet på gården Ep. 11.mp4", false, 3, ~U[2024-07-25 14:00:21Z]] 10:25:29.479 [debug] QUERY OK source="sources" db=0.5ms idle=12.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.481 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=10.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-01 14:00:42Z], 3] 10:25:29.483 [debug] QUERY OK source="media_items" db=1.2ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Heste og højbede | Livet på gården Ep. 12", "9df1cba7-c1f6-4ff1-97b0-76b9e80d04ec", "npE-BTzFMWc", false, 1747, false, "https://www.youtube.com/watch?v=npE-BTzFMWc", 12, "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", false, false, 3, [], 1, ~U[2024-08-01 14:00:42Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video har jeg fuld gang i forspiringen, vi laver højbede og har taget en stor beslutning omkring vores 2 heste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Heste og højbede | Livet på gården Ep. 12", "npE-BTzFMWc", 1747, false, "https://www.youtube.com/watch?v=npE-BTzFMWc", "/downloads/shows/Livet på gården/Season 2024/s2024e080100 - Heste og højbede | Livet på gården Ep. 12.mp4", false, 3, ~U[2024-08-01 14:00:42Z]] 10:25:29.484 [debug] QUERY OK source="sources" db=0.6ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.485 [debug] QUERY OK source="media_items" db=0.7ms idle=6.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-08 14:00:44Z], 3] 10:25:29.487 [debug] QUERY OK source="media_items" db=1.4ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "ab32e7ea-bcfb-4731-b00a-230f4660fede", "mBkf-1EFsdE", false, 1645, false, "https://www.youtube.com/watch?v=mBkf-1EFsdE", 13, "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", false, false, 3, [], 1, ~U[2024-08-08 14:00:44Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit har vi taget en stor beslutning om at der skal flytte nye firebenede ind på marken, og vores kat Willy har kræft i øjet - og får det fjernet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13", "mBkf-1EFsdE", 1645, false, "https://www.youtube.com/watch?v=mBkf-1EFsdE", "/downloads/shows/Livet på gården/Season 2024/s2024e080800 - Vi skal have grise og Willy får fjernet sit øje | Livet på gården Ep. 13.mp4", false, 3, ~U[2024-08-08 14:00:44Z]] 10:25:29.488 [debug] QUERY OK source="sources" db=0.3ms idle=6.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.490 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=5.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-15 14:00:16Z], 3] 10:25:29.491 [debug] QUERY OK source="media_items" db=0.9ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "6bb1ecdf-ced7-45d1-b82d-fdf778b6b151", "EKIo-bTmT5I", false, 1651, false, "https://www.youtube.com/watch?v=EKIo-bTmT5I", 14, "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", false, false, 3, [], 1, ~U[2024-08-15 14:00:16Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit får vi endelig grise, Felix er på besøg og jeg har nogle lidt svære dage. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "VI HAR FÅET GRISE! | Livet på gården Ep. 14", "EKIo-bTmT5I", 1651, false, "https://www.youtube.com/watch?v=EKIo-bTmT5I", "/downloads/shows/Livet på gården/Season 2024/s2024e081500 - VI HAR FÅET GRISE! | Livet på gården Ep. 14.mp4", false, 3, ~U[2024-08-15 14:00:16Z]] 10:25:29.492 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms 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" = ?) [3] 10:25:29.493 [debug] QUERY OK source="media_items" db=0.4ms idle=4.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-22 14:00:53Z], 3] 10:25:29.495 [debug] QUERY OK source="media_items" db=1.9ms idle=4.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Diagnose og dræbersnegle | Livet på gården Ep. 15", "178b52e1-2d9a-4136-968f-068f24fa4f3a", "tVgdZ9ycitU", false, 1505, false, "https://www.youtube.com/watch?v=tVgdZ9ycitU", 15, "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", false, false, 3, [], 1, ~U[2024-08-22 14:00:53Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video har jeg nogle dårlige dage, jeg taler om mine diagnose, og så er der kommet godt gang i køkkenhaven - og dræbersneglene. Derudover må jeg tage livet af en kylling, fordi de andre er nogle bæster. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Diagnose og dræbersnegle | Livet på gården Ep. 15", "tVgdZ9ycitU", 1505, false, "https://www.youtube.com/watch?v=tVgdZ9ycitU", "/downloads/shows/Livet på gården/Season 2024/s2024e082200 - Diagnose og dræbersnegle | Livet på gården Ep. 15.mp4", false, 3, ~U[2024-08-22 14:00:53Z]] 10:25:29.496 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [3] 10:25:29.497 [debug] QUERY OK source="media_items" db=0.4ms idle=5.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-29 14:00:26Z], 3] 10:25:29.498 [debug] QUERY OK source="media_items" db=0.7ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "93e3ebf0-ff66-440a-9055-41f372ff1b71", "X-mJfUiB8oE", false, 1871, false, "https://www.youtube.com/watch?v=X-mJfUiB8oE", 16, "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", false, false, 3, [], 1, ~U[2024-08-29 14:00:26Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit kommer der 5 nye liv til verden, når Connie føder sine små griseunger, vi gør klar til sankt hans og så har vi fået et nyt projekt, nemlig at renovere det gamle fyrrum om til keramikværksted.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Grisefødsel og sankt hans på gården | Livet på gården Ep. 16", "X-mJfUiB8oE", 1871, false, "https://www.youtube.com/watch?v=X-mJfUiB8oE", "/downloads/shows/Livet på gården/Season 2024/s2024e082900 - Grisefødsel og sankt hans på gården | Livet på gården Ep. 16.mp4", false, 3, ~U[2024-08-29 14:00:26Z]] 10:25:29.499 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.499 [debug] QUERY OK source="media_items" db=0.4ms idle=3.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-19 14:00:08Z], 3] 10:25:29.501 [debug] QUERY OK source="media_items" db=0.8ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "d9709fca-c414-4281-ad20-1ffe36d0421c", "ACPmnpI3fvU", false, 1643, false, "https://www.youtube.com/watch?v=ACPmnpI3fvU", 17, "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", false, false, 3, [], 1, ~U[2024-09-19 14:00:08Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit sætter jeg mit keramik til salg for anden gang, med kæmpe sommerfugle i maven, jeg kører akut hjem fra en fødselsdag fordi det ligner at Helle er ved at føde - og så starter vi renoveringen af det nye værksted!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Keramiksalg og nyt værksted | Livet på gården Ep. 19", "ACPmnpI3fvU", 1643, false, "https://www.youtube.com/watch?v=ACPmnpI3fvU", "/downloads/shows/Livet på gården/Season 2024/s2024e091900 - Keramiksalg og nyt værksted | Livet på gården Ep. 19.mp4", false, 3, ~U[2024-09-19 14:00:08Z]] 10:25:29.501 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.502 [debug] QUERY OK source="media_items" db=0.4ms idle=3.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-12 14:01:03Z], 3] 10:25:29.503 [debug] QUERY OK source="media_items" db=0.7ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "bb65cf66-f832-4611-b6bf-b162e9f4be76", "yzoiqawrf90", false, 1387, false, "https://www.youtube.com/watch?v=yzoiqawrf90", 18, "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", false, false, 3, [], 1, ~U[2024-09-12 14:01:03Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for IKEA.\n\nI denne video handler det om søvn og soveværelse. IKEA har nemlig spurgt mig om ikke jeg kunne have lyst til at få bygget vores kommende soveværelse i deres showroom i Aalborg. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBusiness mail: business@kristinesloth.dk", "Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18", "yzoiqawrf90", 1387, false, "https://www.youtube.com/watch?v=yzoiqawrf90", "/downloads/shows/Livet på gården/Season 2024/s2024e091200 - Jeg får bygget mit soveværelse i IKEA | Livet på gården Ep. 18.mp4", false, 3, ~U[2024-09-12 14:01:03Z]] 10:25:29.504 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.504 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-03 14:00:34Z], 3] 10:25:29.506 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En hel dag på dyreinternat | Livet på gården Ep. 21", "8a5b75df-ade0-48c6-8eb2-24853528c70c", "UlJfAh2C0fE", false, 1742, false, "https://www.youtube.com/watch?v=UlJfAh2C0fE", 19, "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", false, false, 3, [], 1, ~U[2024-10-03 14:00:34Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit besøger jeg for første gang dyrenes beskyttelse som ambassadør. En hel dag fyldt med magiske dyr, der bare drømmer om at nogen vil have dem til at bo hos sig. Jeg havde taget dem alle sammen hvis jeg måtte for Mikkel. \n\nDu kan læse mere om dyrenes beskyttelse og deres arbejde, samt se alle de dyr der er til adoption lige her: https://www.dyrenesbeskyttelse.dk/\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En hel dag på dyreinternat | Livet på gården Ep. 21", "UlJfAh2C0fE", 1742, false, "https://www.youtube.com/watch?v=UlJfAh2C0fE", "/downloads/shows/Livet på gården/Season 2024/s2024e100300 - En hel dag på dyreinternat | Livet på gården Ep. 21.mp4", false, 3, ~U[2024-10-03 14:00:34Z]] 10:25:29.506 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.507 [debug] QUERY OK source="media_items" db=0.5ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-10 14:00:09Z], 3] 10:25:29.508 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "98dada02-3b66-4a1a-918f-beaae9b4f588", "5fUjlgO0xVU", false, 1514, false, "https://www.youtube.com/watch?v=5fUjlgO0xVU", 20, "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", false, false, 3, [], 1, ~U[2024-10-10 14:00:09Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit får vi sat det sidste præg på værkstedet, og Mikkel får sin vilje og maler den skrigepink over med beige. Malene og jeg har som opgave at indrette og gøre det brugbart - og faktisk ender det med at blive virkelig godt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22", "5fUjlgO0xVU", 1514, false, "https://www.youtube.com/watch?v=5fUjlgO0xVU", "/downloads/shows/Livet på gården/Season 2024/s2024e101000 - Værkstedstour og bilsnak med Malene | Livet på gården Ep. 22.mp4", false, 3, ~U[2024-10-10 14:00:09Z]] 10:25:29.509 [debug] QUERY OK source="sources" db=0.3ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.509 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-17 14:00:04Z], 3] 10:25:29.511 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "2542c3dc-cda8-4fb2-8607-04b3249a0a7b", "1FSZw5q8Zaw", false, 1892, false, "https://www.youtube.com/watch?v=1FSZw5q8Zaw", 21, "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", false, false, 3, [], 1, ~U[2024-10-17 14:00:04Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit kommer i med igennem hele processen af hvordan jeg laver mit keramik.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Lav keramik med mig - fra start til slut | Livet på gården Ep. 23", "1FSZw5q8Zaw", 1892, false, "https://www.youtube.com/watch?v=1FSZw5q8Zaw", "/downloads/shows/Livet på gården/Season 2024/s2024e101700 - Lav keramik med mig - fra start til slut | Livet på gården Ep. 23.mp4", false, 3, ~U[2024-10-17 14:00:04Z]] 10:25:29.511 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.512 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-24 14:00:05Z], 3] 10:25:29.513 [debug] QUERY OK source="media_items" db=0.7ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "2a6ffbc2-3706-4716-9db9-c94fd00c5c31", "6vrGogQTGw8", false, 2101, false, "https://www.youtube.com/watch?v=6vrGogQTGw8", 22, "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", false, false, 3, [], 1, ~U[2024-10-24 14:00:05Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er Felix på besøg og hjælper til med at tømme keramikovnen, vores store orpington skrukker og køkkenhaven er begyndt at give grøntsager - dog meget sparsomt, da sommeren i år har været fyldt med køkkenhave-fjender. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24", "6vrGogQTGw8", 2101, false, "https://www.youtube.com/watch?v=6vrGogQTGw8", "/downloads/shows/Livet på gården/Season 2024/s2024e102400 - Felix på besøg og høsttid i køkkenhaven | Livet på gården Ep. 24.mp4", false, 3, ~U[2024-10-24 14:00:05Z]] 10:25:29.514 [debug] QUERY OK source="sources" db=0.3ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.515 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-26 14:57:22Z], 3] 10:25:29.516 [debug] QUERY OK source="media_items" db=0.6ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "f4171a43-425f-40ee-9355-9cc1980c7607", "fszG4EUNQSw", false, 1195, false, "https://www.youtube.com/watch?v=fszG4EUNQSw", 23, "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", false, false, 3, [], 1, ~U[2024-10-26 14:57:22Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Vi skal være forældre ❤️\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit)", "fszG4EUNQSw", 1195, false, "https://www.youtube.com/watch?v=fszG4EUNQSw", "/downloads/shows/Livet på gården/Season 2024/s2024e102600 - Vi skal være forældre! | Livet på gården Ep. 25 (særafsnit).mp4", false, 3, ~U[2024-10-26 14:57:22Z]] 10:25:29.516 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.517 [debug] QUERY OK source="media_items" db=0.5ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-31 15:01:02Z], 3] 10:25:29.518 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "8d9343ac-692f-44c7-83f7-aa807fe6281d", "knLNbZN-U8I", false, 845, false, "https://www.youtube.com/watch?v=knLNbZN-U8I", 24, "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", false, false, 3, [], 1, ~U[2024-10-31 15:01:02Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video fortæller vi mange af dem vi elsker at vi skal være forældre!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26", "knLNbZN-U8I", 845, false, "https://www.youtube.com/watch?v=knLNbZN-U8I", "/downloads/shows/Livet på gården/Season 2024/s2024e103100 - Vi fortæller vores familie og venner at jeg er gravid! | Livet på gården Ep. 26.mp4", false, 3, ~U[2024-10-31 15:01:02Z]] 10:25:29.519 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.519 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-07 15:00:19Z], 3] 10:25:29.521 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "799e29c2-2659-4ef0-ad3c-ede9c9a54353", "JyiMi5ofXPw", false, 1621, false, "https://www.youtube.com/watch?v=JyiMi5ofXPw", 25, "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", false, false, 3, [], 1, ~U[2024-11-07 15:00:19Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er jeg kommet til at købe nye høns igen, fordi 21 ikke var nok, og Mikkel henter dem med mig. Vores ene gris er blevet døv, og så er der fuld gang i den, i keramik værkstedet med pat-kopper og ovntømning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27", "JyiMi5ofXPw", 1621, false, "https://www.youtube.com/watch?v=JyiMi5ofXPw", "/downloads/shows/Livet på gården/Season 2024/s2024e110700 - Hønsehaul og succes i keramikværkstedet | Livet på gården Ep. 27.mp4", false, 3, ~U[2024-11-07 15:00:19Z]] 10:25:29.521 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.522 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-14 15:00:51Z], 3] 10:25:29.523 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Døde grise og kæmpe krise | Livet på gården Ep. 28", "6fad0654-8474-4521-93a3-a7ba253f15db", "jEs2qt9f4cQ", false, 1506, false, "https://www.youtube.com/watch?v=jEs2qt9f4cQ", 26, "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", false, false, 3, [], 1, ~U[2024-11-14 15:00:51Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er vi en kort tur i IKEA, pludseligt og voldsomt bliver en af vores små grise syge og må aflives - det samme få dage efter, og vi kender ikke årsagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Døde grise og kæmpe krise | Livet på gården Ep. 28", "jEs2qt9f4cQ", 1506, false, "https://www.youtube.com/watch?v=jEs2qt9f4cQ", "/downloads/shows/Livet på gården/Season 2024/s2024e111400 - Døde grise og kæmpe krise | Livet på gården Ep. 28.mp4", false, 3, ~U[2024-11-14 15:00:51Z]] 10:25:29.524 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.524 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-21 15:00:26Z], 3] 10:25:29.525 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "25a95be3-c2e2-4618-8d58-e5ea24f121e6", "RfFqKyedfAE", false, 1529, false, "https://www.youtube.com/watch?v=RfFqKyedfAE", 27, "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", false, false, 3, [], 1, ~U[2024-11-21 15:00:26Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er der en høne som er blevet syg, og er flyttet ind i stuen til Mikkel kommer hjem og må klare sagerne. Hvidløgene skal i jorden inden frosten, og så er der flytter rotter ind på loftet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29", "RfFqKyedfAE", 1529, false, "https://www.youtube.com/watch?v=RfFqKyedfAE", "/downloads/shows/Livet på gården/Season 2024/s2024e112100 - Vi sætter hvidløg og har rotter på loftet | Livet på gården Ep. 29.mp4", false, 3, ~U[2024-11-21 15:00:26Z]] 10:25:29.526 [debug] QUERY OK source="sources" db=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.527 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-28 15:00:36Z], 3] 10:25:29.528 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "e3ede52d-49a4-4bff-9b5b-842b7ba699d6", "X73rI43iuD4", false, 1708, false, "https://www.youtube.com/watch?v=X73rI43iuD4", 28, "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", false, false, 3, [], 1, ~U[2024-11-28 15:00:36Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er der endnu engang ikke held ved grisene. Vores elskede Connie har fået en stor byld og er generelt svag. Rotterne har invarderet gården - og Mikkels tanker, og så begynder vi så småt at gøre os tanker om renoveringen af overetagen. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30", "X73rI43iuD4", 1708, false, "https://www.youtube.com/watch?v=X73rI43iuD4", "/downloads/shows/Livet på gården/Season 2024/s2024e112800 - En udfordret Mikkel og endnu en syg gris| Livet på gården Ep. 30.mp4", false, 3, ~U[2024-11-28 15:00:36Z]] 10:25:29.529 [debug] QUERY OK source="sources" db=0.3ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.529 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-02 15:00:53Z], 3] 10:25:29.530 [debug] QUERY OK source="media_items" db=0.6ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores grise stikker af | Livet på gården Ep. 31", "fcb2a377-f5a3-4b8a-9245-48c73f0f3e7d", "mdvG-5UJYRw", false, 1586, false, "https://www.youtube.com/watch?v=mdvG-5UJYRw", 29, "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", false, false, 3, [], 1, ~U[2025-01-02 15:00:53Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores grise stikker af | Livet på gården Ep. 31", "mdvG-5UJYRw", 1586, false, "https://www.youtube.com/watch?v=mdvG-5UJYRw", "/downloads/shows/Livet på gården/Season 2025/s2025e010200 - Vores grise stikker af | Livet på gården Ep. 31.mp4", false, 3, ~U[2025-01-02 15:00:53Z]] 10:25:29.531 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.532 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-09 15:01:02Z], 3] 10:25:29.533 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "e01e52dc-8ef8-430a-8e46-98504ce86b55", "in68bPvRI18", false, 1189, false, "https://www.youtube.com/watch?v=in68bPvRI18", 30, "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", false, false, 3, [], 1, ~U[2025-01-09 15:01:02Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video er vi til 20 ugers scanning med en sund og rask baby, og finder ud af hvad kønnet er. Vi køber nyt spisebord, får nye æggefarver, opdager en ny hane og så har jeg nesting syndrom.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32", "in68bPvRI18", 1189, false, "https://www.youtube.com/watch?v=in68bPvRI18", "/downloads/shows/Livet på gården/Season 2025/s2025e010900 - Kønnet på vores baby og nye æggefarver | Livet på gården Ep. 32.mp4", false, 3, ~U[2025-01-09 15:01:02Z]] 10:25:29.533 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.534 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-16 15:00:13Z], 3] 10:25:29.537 [debug] QUERY OK source="media_items" db=2.1ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "c13958e7-a21c-446c-b5ef-0d79042b33a1", "7eqGNG6x48o", false, 1320, false, "https://www.youtube.com/watch?v=7eqGNG6x48o", 31, "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", false, false, 3, [], 1, ~U[2025-01-16 15:00:13Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne gang i livet på gården kommer i med i køkkenet. Vinteren er over os, og jeg bruger meget tid indendøre, da dyrene er i ro og naturen er i dvale. Jeg elsker at lave mad, så se med på hvad jeg spiser på en dag, samt en omgang cookie bagning. Opskriften er denne: \n\nOpskrift til ca. 35 cookies\nDu skal bruge:\n240 g blødt smør\n300 g brun farin\n100 g sukker\n2 æg\n420 g hvedemel\n2 tsk bagepulver\n1 tsk natron\n2 tsk salt\n300 g chokolade\n\nPisk smør, sukker og brun farin sammen. Tilsæt æg og pisk med.\n\nTilsæt hvedemel, natron, bagepulver og salt. Pisk sammen.\n\nHak chokolade og vend det i dejen.\n\nTænd ovnen på 200 grader varmluft.\n\nForm kugler af dejen eller brug en isske.\n\nBag i ca. 10 min, til kanterne er gyldne, men midten stadig er “flydende”. Afkøl til de har sat sig. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33", "7eqGNG6x48o", 1320, false, "https://www.youtube.com/watch?v=7eqGNG6x48o", "/downloads/shows/Livet på gården/Season 2025/s2025e011600 - Hvad jeg spiser på en dag og cookiebagning | Livet på gården Ep. 33.mp4", false, 3, ~U[2025-01-16 15:00:13Z]] 10:25:29.537 [debug] QUERY OK source="sources" db=0.2ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.538 [debug] QUERY OK source="media_items" db=0.4ms idle=4.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-23 15:00:14Z], 3] 10:25:29.539 [debug] QUERY OK source="media_items" db=0.7ms idle=4.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "2d92556d-5559-4c20-bc3b-1c3742695952", "DHmTZSb2QAg", false, 1554, false, "https://www.youtube.com/watch?v=DHmTZSb2QAg", 32, "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", false, false, 3, [], 1, ~U[2025-01-23 15:00:14Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne episode kommer i med når vi forbereder og laver maden nytårsaften, som for os går stille for sig med en baby i maven og dyr der har brug for nærvær. Det nye år starter hårdt ud med strømsvigt i elhegnet, så grisene igen kan stikke af. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34", "DHmTZSb2QAg", 1554, false, "https://www.youtube.com/watch?v=DHmTZSb2QAg", "/downloads/shows/Livet på gården/Season 2025/s2025e012300 - Oversvømmelse hos grise og kærestetid | Livet på gården Ep. 34.mp4", false, 3, ~U[2025-01-23 15:00:14Z]] 10:25:29.540 [debug] QUERY OK source="sources" db=0.2ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.540 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-30 15:00:01Z], 3] 10:25:29.542 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny grisestald og babyhaul | Livet på gården Ep. 35", "389f4dc5-5a8f-4b05-b770-4fbe932eff6c", "06C0dkPjHIU", false, 1577, false, "https://www.youtube.com/watch?v=06C0dkPjHIU", 33, "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", false, false, 3, [], 1, ~U[2025-01-30 15:00:01Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit bikser vi lynhurtigt en stald op til grisene, dog ikke uden problemer, da stødhegnet driller. Heldigvis kommer de på plads, og får nyt hjem som de er meget glade for. Derudover er vi så småt begyndt at shoppe til baby pigen, og har købt en barnevogn og andre sager. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny grisestald og babyhaul | Livet på gården Ep. 35", "06C0dkPjHIU", 1577, false, "https://www.youtube.com/watch?v=06C0dkPjHIU", "/downloads/shows/Livet på gården/Season 2025/s2025e013000 - Ny grisestald og babyhaul | Livet på gården Ep. 35.mp4", false, 3, ~U[2025-01-30 15:00:01Z]] 10:25:29.542 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.543 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-06 15:00:15Z], 3] 10:25:29.544 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Pizzaaften og rottefangst | Livet på gården Ep. 36", "27047d53-9b68-4308-8fa0-e954969816e2", "5VIOEvQa6qs", false, 1119, false, "https://www.youtube.com/watch?v=5VIOEvQa6qs", 34, "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", false, false, 3, [], 1, ~U[2025-02-06 15:00:15Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit kommer i med i køkkenet en helt almindelig hverdags aften hvor vi har pizza aften. Vi er hverken eksperter eller noget, men vi elsker hygger ved at lave pizza sammen. Rotterne er fortsat på færde og med sit luftgevær går Mikkel på jagt og fanger faktisk 2 rotter. Kæmpe succes!\n\nPizzadej: https://stinna.dk/aftensmad/nem-pizzadej.html\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Pizzaaften og rottefangst | Livet på gården Ep. 36", "5VIOEvQa6qs", 1119, false, "https://www.youtube.com/watch?v=5VIOEvQa6qs", "/downloads/shows/Livet på gården/Season 2025/s2025e020600 - Pizzaaften og rottefangst | Livet på gården Ep. 36.mp4", false, 3, ~U[2025-02-06 15:00:15Z]] 10:25:29.545 [debug] QUERY OK source="sources" db=0.4ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.545 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-13 15:00:15Z], 3] 10:25:29.547 [debug] QUERY OK source="media_items" db=0.9ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "53f34a12-d29f-42f3-87fd-1cff2695e759", "C4VNr3_SRjc", false, 964, false, "https://www.youtube.com/watch?v=C4VNr3_SRjc", 35, "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", false, false, 3, [], 1, ~U[2025-02-13 15:00:15Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for HelloFresh. \n\nI denne video kommer i med i løbet af mad-dag. Jeg er gravid i 3. trimester og er mere sulten end nogensinde før. Jeg spiser hvad jeg lyster og nemheden er vigtig for os lige nu da jeg er udfordret i de store indkøb - så derfor får vi måltidskasser fra HelloFresh. Det er nemt, lækkert og virkelig inspirerende. \n\nDu kan lige nu spare op til 1079 kroner på dine 3 første måltidskasser fra HelloFresh og få en gratis dessert med ved hver bestilling de første 3 måneder hvis du er ny kunde - ved brug af min rabatkode KRISTINEFRESH25 eller ved at klikke på linket her: http://www.hellofresh.dk/KRISTINEFRESH25\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37", "C4VNr3_SRjc", 964, false, "https://www.youtube.com/watch?v=C4VNr3_SRjc", "/downloads/shows/Livet på gården/Season 2025/s2025e021300 - Hvad jeg spiser på en dag som gravid | Livet på gården Ep. 37.mp4", false, 3, ~U[2025-02-13 15:00:15Z]] 10:25:29.548 [debug] QUERY OK source="sources" db=0.2ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.548 [debug] QUERY OK source="media_items" db=0.4ms idle=3.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-20 15:01:25Z], 3] 10:25:29.550 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "1ef81942-dc7b-4e93-9b30-dae3d4d043e1", "y7cv58JT-FI", false, 1364, false, "https://www.youtube.com/watch?v=y7cv58JT-FI", 36, "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", false, false, 3, [], 1, ~U[2025-02-20 15:01:25Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne episode er der igen igen gang i rotterne, og vi beslutter os for at rydde hønsehus for sager og flytte æggestationen. Willy har haft en byld der er sprunget, og må akut til dyrelægen - og så giver jeg en update på hvordan det går både med mig og graviditeten.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En skæv kat og en graviditetsupdate | Livet på gården Ep. 38", "y7cv58JT-FI", 1364, false, "https://www.youtube.com/watch?v=y7cv58JT-FI", "/downloads/shows/Livet på gården/Season 2025/s2025e022000 - En skæv kat og en graviditetsupdate | Livet på gården Ep. 38.mp4", false, 3, ~U[2025-02-20 15:01:25Z]] 10:25:29.550 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.551 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-06 15:01:06Z], 3] 10:25:29.552 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "ea4a77c7-9e0f-46eb-855e-cdcb06fd1c53", "lZWB5QR4wPQ", false, 1194, false, "https://www.youtube.com/watch?v=lZWB5QR4wPQ", 37, "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", false, false, 3, [], 1, ~U[2025-03-06 15:01:06Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården handler jeg ind til ugens madplan og så bruger vi en helt fantastisk og rolig dag udenfor. Mikkel får ordnet brænde og vi forbereder os så småt på foråret - for inden vi aner det holder Mikkel fri, for at nå så meget renovering af overetagen som muligt inden baby kommer.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indkøbshaul og forår i luften | Livet på gården Ep. 39", "lZWB5QR4wPQ", 1194, false, "https://www.youtube.com/watch?v=lZWB5QR4wPQ", "/downloads/shows/Livet på gården/Season 2025/s2025e030600 - Indkøbshaul og forår i luften | Livet på gården Ep. 39.mp4", false, 3, ~U[2025-03-06 15:01:06Z]] 10:25:29.553 [debug] QUERY OK source="sources" db=0.3ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.554 [debug] QUERY OK source="media_items" db=0.5ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-13 15:00:23Z], 3] 10:25:29.555 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "0dfa54c9-6cfd-4a06-8ef8-aac3da7ce246", "Ok2_GV07ZBQ", false, 1167, false, "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", 38, "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", false, false, 3, [], 1, ~U[2025-03-13 15:00:23Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården tager jeg jer med ind i en tankestrøm på en af de svære dage. Hønsedamerne er endeligt begyndt at lægge æg, så det giver mening og så er mine forældre på besøg, og der sker som altid en masse. Jeg får endelig en fryser indenfor og så sætter min far og Mikkel en midlertidig trappe op, så vi så småt kan begynde på overetagen!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En træt krop og en trappe til overetagen | Livet på gården Ep. 40", "Ok2_GV07ZBQ", 1167, false, "https://www.youtube.com/watch?v=Ok2_GV07ZBQ", "/downloads/shows/Livet på gården/Season 2025/s2025e031300 - En træt krop og en trappe til overetagen | Livet på gården Ep. 40.mp4", false, 3, ~U[2025-03-13 15:00:23Z]] 10:25:29.555 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.556 [debug] QUERY OK source="media_items" db=0.4ms idle=3.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-08 14:00:48Z], 3] 10:25:29.557 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En baby og nesting mode | Livet på gården Ep. 41", "f1c13327-479d-4001-a887-724f0a849d5c", "_dr97qz8fXE", false, 1161, false, "https://www.youtube.com/watch?v=_dr97qz8fXE", 39, "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", false, false, 3, [], 1, ~U[2025-05-08 14:00:48Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Der er sket meget siden sidst - jeg har født! Men inden da filmede jeg en masse gode sager, som jeg ikke synes i skal gå glip af. Blandt andet at vi er ramt af nesting syndrom og pludselig må have nye møbler og gardiner - og udenfor er Mikkel som altid i fuld gang - med bål og klargøring af drivhus. Pænt sidder jeg meget tyk og træt og kigger på imens. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En baby og nesting mode | Livet på gården Ep. 41", "_dr97qz8fXE", 1161, false, "https://www.youtube.com/watch?v=_dr97qz8fXE", "/downloads/shows/Livet på gården/Season 2025/s2025e050800 - En baby og nesting mode | Livet på gården Ep. 41.mp4", false, 3, ~U[2025-05-08 14:00:48Z]] 10:25:29.558 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.559 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-15 14:00:49Z], 3] 10:25:29.560 [debug] QUERY OK source="media_items" db=0.9ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "143231cd-2eaa-436a-ad2a-ebf1a37f85c9", "XyfY9KQlii8", false, 1565, false, "https://www.youtube.com/watch?v=XyfY9KQlii8", 40, "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", false, false, 3, [], 1, ~U[2025-05-15 14:00:49Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit handler det om knækbrød og køkkentid og rotter. Og så tager jeg en snak om grisene og hønsene, jeg er nemlig kommet i tvivl om det giver mening økonomisk at have grise som alligevel ikke bliver slagteklar forløbig. Hønsene vender vi også. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Knækbrød og en snak om økonomien | Livet på gården Ep. 42", "XyfY9KQlii8", 1565, false, "https://www.youtube.com/watch?v=XyfY9KQlii8", "/downloads/shows/Livet på gården/Season 2025/s2025e051500 - Knækbrød og en snak om økonomien | Livet på gården Ep. 42.mp4", false, 3, ~U[2025-05-15 14:00:49Z]] 10:25:29.560 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.561 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-22 14:00:14Z], 3] 10:25:29.562 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "f71dd213-189f-4a73-a561-4be7868cd03d", "4lsBpblT134", false, 1220, false, "https://www.youtube.com/watch?v=4lsBpblT134", 41, "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", false, false, 3, [], 1, ~U[2025-05-22 14:00:14Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er der indkøbshaul, som synger på sidste vers inden jeg skal føde, da det simpelthen er for hårdt for mig at handle selv. Jeg forbereder mad til fryseren så der er godt mad til efter fødslen, og så har vi taget en stor beslutning om at pille taget af liiige kvart i termin og det sætter mine nerver på spidsen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43", "4lsBpblT134", 1220, false, "https://www.youtube.com/watch?v=4lsBpblT134", "/downloads/shows/Livet på gården/Season 2025/s2025e052200 - En stor beslutning og kartofler i drivhuset | Livet på gården Ep. 43.mp4", false, 3, ~U[2025-05-22 14:00:14Z]] 10:25:29.563 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.564 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-29 14:00:35Z], 3] 10:25:29.565 [debug] QUERY OK source="media_items" db=0.6ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Højgravid og et hus uden tag | Livet på gården Ep. 44", "c1968cd6-cd4b-415a-9cbe-5c629c480a9c", "LwViuowDYFk", false, 1273, false, "https://www.youtube.com/watch?v=LwViuowDYFk", 42, "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", false, false, 3, [], 1, ~U[2025-05-29 14:00:35Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er jeg for alvor ved at være udfordret af min graviditet, jeg er kæmpe stor med meget væske i kroppen, alt imens at Mikkel knokler i døgndrift på at lave nyt tag. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Højgravid og et hus uden tag | Livet på gården Ep. 44", "LwViuowDYFk", 1273, false, "https://www.youtube.com/watch?v=LwViuowDYFk", "/downloads/shows/Livet på gården/Season 2025/s2025e052900 - Højgravid og et hus uden tag | Livet på gården Ep. 44.mp4", false, 3, ~U[2025-05-29 14:00:35Z]] 10:25:29.565 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.566 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-05 14:00:41Z], 3] 10:25:29.567 [debug] QUERY OK source="media_items" db=0.8ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "eab2296d-7dac-4eda-9b02-799e250bf79a", "QVFwXhDMin4", false, 1394, false, "https://www.youtube.com/watch?v=QVFwXhDMin4", 43, "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", false, false, 3, [], 1, ~U[2025-06-05 14:00:41Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit tager det hele pludselig en drejning da vi en dag er ved jordemoder og mit blodtryk er alt for højt. Efter tjek kommer vi hjem og når lige at rykke grisenes indhegning, før det desværre bliver nødvendigt at indlægge mig grundet svangerskabsforgiftning og diabetes. Og pludselig ser vi ind i en igangsættelse frem for en naturlig start på fødslen.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45", "QVFwXhDMin4", 1394, false, "https://www.youtube.com/watch?v=QVFwXhDMin4", "/downloads/shows/Livet på gården/Season 2025/s2025e060500 - Indlæggelse og svangerskabsforgiftning | Livet på gården Ep. 45.mp4", false, 3, ~U[2025-06-05 14:00:41Z]] 10:25:29.568 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.568 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-12 14:00:00Z], 3] 10:25:29.569 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Når 2 bliver til 3 | Livet på gården Ep. 46", "9bd4e40a-b30a-4abb-be42-3c51dc8f6b33", "-rvS4KsyD-8", false, 1290, false, "https://www.youtube.com/watch?v=-rvS4KsyD-8", 44, "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", false, false, 3, [], 1, ~U[2025-06-12 14:00:00Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit bliver 2 endelig til 3 når vi bliver forældre til den fineste lille pige. Vi kommer hjem i god behold, jeg er stadig noget medtaget efter en hård fødsel.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Når 2 bliver til 3 | Livet på gården Ep. 46", "-rvS4KsyD-8", 1290, false, "https://www.youtube.com/watch?v=-rvS4KsyD-8", "/downloads/shows/Livet på gården/Season 2025/s2025e061200 - Når 2 bliver til 3 | Livet på gården Ep. 46.mp4", false, 3, ~U[2025-06-12 14:00:00Z]] 10:25:29.570 [debug] QUERY OK source="sources" db=0.3ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.571 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-19 14:00:28Z], 3] 10:25:29.572 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "cfe03d4a-f91f-405c-b79c-757e4562f80a", "L8u8ZcjpR6A", false, 1248, false, "https://www.youtube.com/watch?v=L8u8ZcjpR6A", 45, "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", false, false, 3, [], 1, ~U[2025-06-19 14:00:28Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er vi for alvor faldet på plads derhjemme igen efter en hård omgang og tilvænning efter fødslen. Vi er begge 2 på barsel og nyder det - nogle mere end andre. Som altid har Mikkel gang i alt muligt og kan ikke sidde stille. Hønsene skrukker og køkkenhaven er kaos - så alt er som det plejer på denne tid af året. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Barselsbobbel og køkkenhave | Livet på gården Ep. 47", "L8u8ZcjpR6A", 1248, false, "https://www.youtube.com/watch?v=L8u8ZcjpR6A", "/downloads/shows/Livet på gården/Season 2025/s2025e061900 - Barselsbobbel og køkkenhave | Livet på gården Ep. 47.mp4", false, 3, ~U[2025-06-19 14:00:28Z]] 10:25:29.572 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.573 [debug] QUERY OK source="media_items" db=0.5ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-26 14:00:46Z], 3] 10:25:29.575 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "cf57c283-7d23-4725-b5b0-edd19e6a3546", "W_VQNTe2uV0", false, 885, false, "https://www.youtube.com/watch?v=W_VQNTe2uV0", 46, "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", false, false, 3, [], 1, ~U[2025-06-26 14:00:46Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for Segway Navimow | I dette afsnit er vi kommet i haven, fordi vi har fået intet mindre end en enormt fancy robotplæneklipper - og selvom Mikkel er meget glad for sin havetraktor, så er han altså ikke til at styre. \n\nLæs mere om plæneklipperen her: http://bit.ly/4lwNXrf\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ny plæneklipper og en glad mand | Livet på gården Ep. 48", "W_VQNTe2uV0", 885, false, "https://www.youtube.com/watch?v=W_VQNTe2uV0", "/downloads/shows/Livet på gården/Season 2025/s2025e062600 - Ny plæneklipper og en glad mand | Livet på gården Ep. 48.mp4", false, 3, ~U[2025-06-26 14:00:46Z]] 10:25:29.575 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.576 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-03 14:00:38Z], 3] 10:25:29.578 [debug] QUERY OK source="media_items" db=2.2ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tomater og byggemøde | Livet på gården Ep. 49", "a557d72c-e994-4017-88b5-e59b83887aa2", "LOW7BsM3muw", false, 1455, false, "https://www.youtube.com/watch?v=LOW7BsM3muw", 47, "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", false, false, 3, [], 1, ~U[2025-07-03 14:00:38Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er det endelig blevet maj og tid til at sætte tomater i drivhuset. I år er de købt, men de får samme start som mine tomater altid gør. Jeg kommer med mine bedste tips og tricks. Og så tager vi en snak om byggeriet og alle vores sommer planer. Mikkel får travlt, som altid. Tak fordi du ser med!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tomater og byggemøde | Livet på gården Ep. 49", "LOW7BsM3muw", 1455, false, "https://www.youtube.com/watch?v=LOW7BsM3muw", "/downloads/shows/Livet på gården/Season 2025/s2025e070300 - Tomater og byggemøde | Livet på gården Ep. 49.mp4", false, 3, ~U[2025-07-03 14:00:38Z]] 10:25:29.579 [debug] QUERY OK source="sources" db=0.2ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.580 [debug] QUERY OK source="media_items" db=0.4ms idle=4.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-10 14:01:07Z], 3] 10:25:29.581 [debug] QUERY OK source="media_items" db=0.7ms idle=4.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "ff8e0037-7502-45cf-97eb-039ec8207586", "eRwqESemLz0", false, 1048, false, "https://www.youtube.com/watch?v=eRwqESemLz0", 48, "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", false, false, 3, [], 1, ~U[2025-07-10 14:01:07Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit har jeg tømt keramikovnen for første gang længe, jeg er i haven for første gang længe og er så småt ved at komme tilbage til mit før. Men fødslen har sat sine spor og det tager jeg en snak om i dette afsnit. Tak fordi du ser med!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50", "eRwqESemLz0", 1048, false, "https://www.youtube.com/watch?v=eRwqESemLz0", "/downloads/shows/Livet på gården/Season 2025/s2025e071000 - Havearbejde og en snak om efterfødselskroppen | Livet på gården Ep. 50.mp4", false, 3, ~U[2025-07-10 14:01:07Z]] 10:25:29.581 [debug] QUERY OK source="sources" db=0.2ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.582 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-17 14:00:37Z], 3] 10:25:29.583 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores datter er med i haven | Livet på gården Ep. 51", "d2fc3a89-2498-4477-ad36-c03495c75fdf", "N_QTztIN_uE", false, 1223, false, "https://www.youtube.com/watch?v=N_QTztIN_uE", 49, "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", false, false, 3, [], 1, ~U[2025-07-17 14:00:37Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit sker der en hulens masse sjove sager. Mikkel er i fuld gang med at lave vejen om og bygge det nye hegn. Vores datter er med i haven i bæreselen og jeg høster rabarberen. Og så er der dømt nyt udstyr og et haul af alt det gejl vi har fået hjem!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores datter er med i haven | Livet på gården Ep. 51", "N_QTztIN_uE", 1223, false, "https://www.youtube.com/watch?v=N_QTztIN_uE", "/downloads/shows/Livet på gården/Season 2025/s2025e071700 - Vores datter er med i haven | Livet på gården Ep. 51.mp4", false, 3, ~U[2025-07-17 14:00:37Z]] 10:25:29.584 [debug] QUERY OK source="sources" db=0.1ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.584 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-14 14:00:17Z], 3] 10:25:29.586 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nyt tag på 3 dage | Livet på gården Ep. 52", "2b55e842-26e2-4f05-84a8-01622f6e177d", "8KBS6AxLEhs", false, 1213, false, "https://www.youtube.com/watch?v=8KBS6AxLEhs", 50, "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", false, false, 3, [], 1, ~U[2025-08-14 14:00:17Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video har vi en baby som er udfordret af tigerspring og dermed en træt mor. Mikkel knokler løs på taget fra morgen til aften og så sætter han lidt ord på hvad det er han har lavet, denne gang med en mikrofon - så man bedre kan høre ham, haha!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Nyt tag på 3 dage | Livet på gården Ep. 52", "8KBS6AxLEhs", 1213, false, "https://www.youtube.com/watch?v=8KBS6AxLEhs", "/downloads/shows/Livet på gården/Season 2025/s2025e081400 - Nyt tag på 3 dage | Livet på gården Ep. 52.mp4", false, 3, ~U[2025-08-14 14:00:17Z]] 10:25:29.586 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.587 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-21 14:01:25Z], 3] 10:25:29.598 [debug] QUERY OK source="media_items" db=10.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "0c27f641-183c-4b5d-b370-a4de5a77b804", "xTCNmkJl7cs", false, 1195, false, "https://www.youtube.com/watch?v=xTCNmkJl7cs", 51, "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", false, false, 3, [], 1, ~U[2025-08-21 14:01:25Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit har Mikkel gang i bekæmpelsen af ukrudt, mens jeg giver mig i kast med loppehelvede i hønsehuset, som er INVARDERET! Det får den helt store tur og så er det bare at håbe at det er nok, for ellers skal jeg have anskaffet mig exholt og det er en dyr affære.. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53", "xTCNmkJl7cs", 1195, false, "https://www.youtube.com/watch?v=xTCNmkJl7cs", "/downloads/shows/Livet på gården/Season 2025/s2025e082100 - Hønsehuset er fyldt med lopper!! | Livet på gården Ep. 53.mp4", false, 3, ~U[2025-08-21 14:01:25Z]] 10:25:29.599 [debug] QUERY OK source="sources" db=0.2ms idle=13.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.599 [debug] QUERY OK source="media_items" db=0.4ms idle=13.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-28 14:00:46Z], 3] 10:25:29.602 [debug] QUERY OK source="media_items" db=1.8ms idle=13.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "842ac468-e0f8-477a-83e4-dd93a9d213c1", "U_w3PIAVp40", false, 1652, false, "https://www.youtube.com/watch?v=U_w3PIAVp40", 52, "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", false, false, 3, [], 1, ~U[2025-08-28 14:00:46Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Mikkel arbejder videre på taget og så tager vi en status på hønsehuset efter udrensning. Hønsene skrukker på stribe og der er semi krise over det. Malene kommer på besøg og får den store tour af køkkenhaven, vi laver mad sammen og tager en snak om hvorfor hun ikke længere arbejder hos mig.. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg af Malene og høns der skrukker | Livet på gården Ep. 54", "U_w3PIAVp40", 1652, false, "https://www.youtube.com/watch?v=U_w3PIAVp40", "/downloads/shows/Livet på gården/Season 2025/s2025e082800 - Besøg af Malene og høns der skrukker | Livet på gården Ep. 54.mp4", false, 3, ~U[2025-08-28 14:00:46Z]] 10:25:29.602 [debug] QUERY OK source="sources" db=0.2ms idle=15.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.603 [debug] QUERY OK source="media_items" db=0.4ms idle=4.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-07 14:01:23Z], 3] 10:25:29.604 [debug] QUERY OK source="media_items" db=0.7ms idle=4.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "84d103f0-2d3f-458f-9b72-72d72fd1f5b6", "oJHte_vjoV4", false, 1265, false, "https://www.youtube.com/watch?v=oJHte_vjoV4", 53, "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", false, false, 3, [], 1, ~U[2025-08-07 14:01:23Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for HelloFresh. \n\nDu kan få 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder.\nRabatkode: B2SKRISTINE\nLink: www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52", "oJHte_vjoV4", 1265, false, "https://www.youtube.com/watch?v=oJHte_vjoV4", "/downloads/shows/Livet på gården/Season 2025/s2025e080700 - Besøg og høns der skrukker - igen.. | Livet på gården Ep. 52.mp4", false, 3, ~U[2025-08-07 14:01:23Z]] 10:25:29.605 [debug] QUERY OK source="sources" db=0.2ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.605 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-04 14:01:08Z], 3] 10:25:29.607 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "2f6e9a06-7078-48bf-9828-c4a3ea5fba9a", "gbe1EwOyOKY", false, 1396, false, "https://www.youtube.com/watch?v=gbe1EwOyOKY", 54, "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", false, false, 3, [], 1, ~U[2025-09-04 14:01:08Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit kommer i for første gang med op på overetagen og ser med når Mikkel bygger den anden kvist - det er også første gang jeg er deroppe, og jeg er mildest talt oppe at ringe over hvor fedt det bliver. Felix er på besøg og med i værkstedet og så har vi taget store beslutninger om fremtiden på gården. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Felix laver keramik og vores store beslutning | Livet på gården Ep. 55", "gbe1EwOyOKY", 1396, false, "https://www.youtube.com/watch?v=gbe1EwOyOKY", "/downloads/shows/Livet på gården/Season 2025/s2025e090400 - Felix laver keramik og vores store beslutning | Livet på gården Ep. 55.mp4", false, 3, ~U[2025-09-04 14:01:08Z]] 10:25:29.607 [debug] QUERY OK source="sources" db=0.3ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.608 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 14:00:02Z], 3] 10:25:29.609 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "ea4e1d15-69bd-406e-9bab-d887a5436b90", "aPr93nvV6Sc", false, 1421, false, "https://www.youtube.com/watch?v=aPr93nvV6Sc", 55, "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", false, false, 3, [], 1, ~U[2025-09-11 14:00:02Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56", "aPr93nvV6Sc", 1421, false, "https://www.youtube.com/watch?v=aPr93nvV6Sc", "/downloads/shows/Livet på gården/Season 2025/s2025e091100 - Vores høns flytter, nyt fitnessrum og strømsvigt | Livet på gården Ep. 56.mp4", false, 3, ~U[2025-09-11 14:00:02Z]] 10:25:29.610 [debug] QUERY OK source="sources" db=0.3ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.611 [debug] QUERY OK source="media_items" db=0.5ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-18 14:06:34Z], 3] 10:25:29.612 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "3b6f77a6-32f9-40f7-9011-1963b812124b", "lLuYcnLpHk8", false, 1020, false, "https://www.youtube.com/watch?v=lLuYcnLpHk8", 56, "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", false, false, 3, [], 1, ~U[2025-09-18 14:06:34Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Mange tak fordi du så med - det betyder super meget for mig!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57", "lLuYcnLpHk8", 1020, false, "https://www.youtube.com/watch?v=lLuYcnLpHk8", "/downloads/shows/Livet på gården/Season 2025/s2025e091800 - Afskrukning af høns og klipning af vinger | Livet på gården Ep. 57.mp4", false, 3, ~U[2025-09-18 14:06:34Z]] 10:25:29.613 [debug] QUERY OK source="sources" db=0.4ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.613 [debug] QUERY OK source="media_items" db=0.4ms idle=3.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-25 14:01:33Z], 3] 10:25:29.615 [debug] QUERY OK source="media_items" db=1.0ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "a88e96c9-4c3b-47d0-aadb-3f83a57a3bdf", "rFwrB9Pe4hM", false, 1485, false, "https://www.youtube.com/watch?v=rFwrB9Pe4hM", 57, "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", false, false, 3, [], 1, ~U[2025-09-25 14:01:33Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for HelloFresh. \n\nFå 20 måltider fra kun 33 kr. pr. portion og få gratis snacks med hver bestilling i 3 måneder med min rabatkode B2SKRISTINE \n\nFå min rabat her: http://www.hellofresh.dk/B2SKRISTINE\n\nI dagens afsnit er vi i fuld gang. Jeg giver en status fra keramikken, jeg hjælper til når Mikkel sætter sig for at rive kradt og så forsøger vi os med en timelapse for første gang. Vi giver også en status på hvordan det går i hønsegården efter vi har skåret gevaldigt ned for antallet. Alt sammen i mens vores datter er i tigerspring og meget lidt vil sove.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58", "rFwrB9Pe4hM", 1485, false, "https://www.youtube.com/watch?v=rFwrB9Pe4hM", "/downloads/shows/Livet på gården/Season 2025/s2025e092500 - Tigerspring, hønsestatus og knoklearbejde | Livet på gården Ep. 58.mp4", false, 3, ~U[2025-09-25 14:01:33Z]] 10:25:29.616 [debug] QUERY OK source="sources" db=0.3ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.616 [debug] QUERY OK source="media_items" db=0.4ms idle=3.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 14:01:32Z], 3] 10:25:29.618 [debug] QUERY OK source="media_items" db=0.9ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "6da1d25d-9bc4-4c8d-b29e-3ff2a0f7c3cd", "uEP1rtTb-XE", false, 1641, false, "https://www.youtube.com/watch?v=uEP1rtTb-XE", 58, "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", false, false, 3, [], 1, ~U[2025-10-02 14:01:32Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit tager Mikkel mig med i hans store planer om både ny gårdsplads og fliselægning. Han fortsætter det sidste arbejde på kvisten og jeg trækker i arbejdstøjet og hjælper til med både byggeaffald og trimning af haven - samtidig med at vores baby fortsat sover skidt. Grisene flytter hjemmefra og jeg får sagt ordenligt farvel. Det er meget vemodigt, men også for det bedste. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59", "uEP1rtTb-XE", 1641, false, "https://www.youtube.com/watch?v=uEP1rtTb-XE", "/downloads/shows/Livet på gården/Season 2025/s2025e100200 - Mikkels planer, byggeoprydning og grise der flytter | Livet på gården Ep. 59.mp4", false, 3, ~U[2025-10-02 14:01:32Z]] 10:25:29.618 [debug] QUERY OK source="sources" db=0.3ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.619 [debug] QUERY OK source="media_items" db=0.4ms idle=3.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-09 14:01:15Z], 3] 10:25:29.621 [debug] QUERY OK source="media_items" db=0.9ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "367352e1-1c53-463c-830c-24907e1d653d", "mCkvhf9YDCk", false, 1534, false, "https://www.youtube.com/watch?v=mCkvhf9YDCk", 59, "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", false, false, 3, [], 1, ~U[2025-10-09 14:01:15Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit kører vi på ferie i en bil der aldrig har været meget fyldt og vi har endda fået ny stor bil. Jeg døjer med hæmorider og så tager vi en klassisk tur rundt med Mikkel der fortæller om alle de ting han synes der skal fikses. Vi starter dog med at rykke et gammelt hønsehus og flytte vores ATV som er gået i stykker. Vi er også en tur i vores kaos af en have, hvor det eneste der fungere er én squash plante, som til gengæld også levere GIGANTISKE squash. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60", "mCkvhf9YDCk", 1534, false, "https://www.youtube.com/watch?v=mCkvhf9YDCk", "/downloads/shows/Livet på gården/Season 2025/s2025e100900 - Ferie, haveprojekter og gigantiske squash | Livet på gården Ep. 60.mp4", false, 3, ~U[2025-10-09 14:01:15Z]] 10:25:29.621 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.622 [debug] QUERY OK source="media_items" db=0.4ms idle=3.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-16 14:00:35Z], 3] 10:25:29.623 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "ac561343-aaf2-4e69-bda4-52f05e7876b1", "KMuFnD8X_To", false, 1491, false, "https://www.youtube.com/watch?v=KMuFnD8X_To", 60, "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", false, false, 3, [], 1, ~U[2025-10-16 14:00:35Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit har vi besøg af min veninde fra København fordi vi er kommet dertil hvor vi skal holde navngivningsfest for vores datter. Vi har slået det store brød op med kæmpe telt i haven og alt harald nyborgs pynt tror jeg nærmest? Derudover har Mikkel besluttet sig for at bygge sit eget gyngestativ til vores nye gynger\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi gør klar til navngivningsfest | Livet på gården Ep. 61", "KMuFnD8X_To", 1491, false, "https://www.youtube.com/watch?v=KMuFnD8X_To", "/downloads/shows/Livet på gården/Season 2025/s2025e101600 - Vi gør klar til navngivningsfest | Livet på gården Ep. 61.mp4", false, 3, ~U[2025-10-16 14:00:35Z]] 10:25:29.624 [debug] QUERY OK source="sources" db=0.3ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.624 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 14:00:02Z], 3] 10:25:29.626 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi bygger et gyngestativ | Livet på gården Ep. 62", "cc7f5bf1-5fdb-4a3e-bc5d-9edf5d2645a1", "aSbYAroNsjw", false, 1384, false, "https://www.youtube.com/watch?v=aSbYAroNsjw", 61, "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", false, false, 3, [], 1, ~U[2025-10-23 14:00:02Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne episode fortsætter vi byggeriet af gyngestativet som skal stå i bunden af haven. Mikkel tegner og fortæller hvordan han laver det og jeg er på en måde blevet praktikant. Jeg er samtidig ved at forberede mig på keramiksalg den forestående weekend og det er lidt mere spændende end normalt fordi jeg denne gang fikser alt selv, eftersom Malene ikke længere er hos mig.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi bygger et gyngestativ | Livet på gården Ep. 62", "aSbYAroNsjw", 1384, false, "https://www.youtube.com/watch?v=aSbYAroNsjw", "/downloads/shows/Livet på gården/Season 2025/s2025e102300 - Vi bygger et gyngestativ | Livet på gården Ep. 62.mp4", false, 3, ~U[2025-10-23 14:00:02Z]] 10:25:29.626 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.627 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 14:00:55Z], 3] 10:25:29.629 [debug] QUERY OK source="media_items" db=0.9ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "f07f2357-286f-495a-b97d-695f726c65d1", "_c08N8LDjq4", false, 1386, false, "https://www.youtube.com/watch?v=_c08N8LDjq4", 62, "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", false, false, 3, [], 1, ~U[2025-10-30 14:00:55Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode 959KRISTINES eller få rabatten via linket her: http://www.hellofresh.dk/959KRISTINES\n\nI denne episode sætter vi langt om længe keramik til salg igen, og det er udsolgt på meget få minutter. Vi er på røven over det må jeg bare sige. Mikkel bygger og vi får besøg af min familie der hjælper til hvor der er brug for det. Julle overtager kameraet mens hun maler og jeg er ved lægen med vores datter. Min far underholder som altid med alle de vanvittige ting han siger og min mor er gået i krig med vasketøjet \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63", "_c08N8LDjq4", 1386, false, "https://www.youtube.com/watch?v=_c08N8LDjq4", "/downloads/shows/Livet på gården/Season 2025/s2025e103000 - Vi sælger keramik og har min familie på besøg | Livet på gården Ep. 63.mp4", false, 3, ~U[2025-10-30 14:00:55Z]] 10:25:29.629 [debug] QUERY OK source="sources" db=0.2ms idle=4.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.630 [debug] QUERY OK source="media_items" db=0.4ms idle=3.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-06 14:00:48Z], 3] 10:25:29.633 [debug] QUERY OK source="media_items" db=2.3ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "b4e444d0-e42f-4afb-ab43-b0f4c5a13e09", "NcSqbDLMJCo", false, 1699, false, "https://www.youtube.com/watch?v=NcSqbDLMJCo", 63, "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", false, false, 3, [], 1, ~U[2025-11-06 14:00:48Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er vi langt om længe gået igang med at male soklen under vores vinduer. Mikkel er ikke just tilfreds med min måde at gøre det på, men det bliver han nok aldrig haha. Willy er blevet besat af at sidde på min skulder og Mikkel synes åbenbart at et pæretræ skal dø? Jeg svare også på spørgsmål jeg ofte får om hvordan det har været at blive mor, når man har et sind som mit.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64", "NcSqbDLMJCo", 1699, false, "https://www.youtube.com/watch?v=NcSqbDLMJCo", "/downloads/shows/Livet på gården/Season 2025/s2025e110600 - Malerarbejde, isbad og at være mor med en diagnose | Livet på gården Ep. 64.mp4", false, 3, ~U[2025-11-06 14:00:48Z]] 10:25:29.634 [debug] QUERY OK source="sources" db=0.2ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.635 [debug] QUERY OK source="media_items" db=0.4ms idle=5.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-13 15:01:37Z], 3] 10:25:29.636 [debug] QUERY OK source="media_items" db=0.9ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "8e63cad3-fd0b-41a7-93bb-f64dc607b748", "bt4dqhzvEu0", false, 1312, false, "https://www.youtube.com/watch?v=bt4dqhzvEu0", 64, "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", false, false, 3, [], 1, ~U[2025-11-13 15:01:37Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dagens afsnit er Mikkel spændt som en flitsbue fordi hans længe ventede drøm om en minilæsser endelig går i opfyldelse og jeg får mig ca. verdens gladeste mand og forhåbenligt lidt ro hahaha. Den er meget velkommen, fordi det er blevet tid til at pille gavlene ned med hjælp fra Mikkels bedste buddy Krog som også er tømrer. Deres mission er at pille 2 gavle ned og bygge dem op igen på 2 dage - et ambitiøst projekt mildt sagt. I kommer med i processen og Mikkel deler han tanker og viden om den slags. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65", "bt4dqhzvEu0", 1312, false, "https://www.youtube.com/watch?v=bt4dqhzvEu0", "/downloads/shows/Livet på gården/Season 2025/s2025e111300 - Mikkel får endelig en MINILÆSSER! | Livet på gården Ep. 65.mp4", false, 3, ~U[2025-11-13 15:01:37Z]] 10:25:29.637 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [3] 10:25:29.637 [debug] QUERY OK source="media_items" db=0.4ms idle=4.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-20 15:01:06Z], 3] 10:25:29.639 [debug] QUERY OK source="media_items" db=0.8ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "dfbf2719-721b-4fa5-af0b-339b6a040a27", "XO87v1AxbWQ", false, 1694, false, "https://www.youtube.com/watch?v=XO87v1AxbWQ", 65, "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", false, false, 3, [], 1, ~U[2025-11-20 15:01:06Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit tager Mikkel os med når han viser hvad han har fikset med minilæsseren. Han har gang i den helt store oprydning både det ene og ander sted. Jeg prøver at sidde i minilæsseren for første gang mens Mikkel fortæller hvad den kan. Inde i køkkenet har jeg gang i at langtidskoge ossobuco til baby - og så tager vi jer med i vores planer og forestående indkøb til overetagen. Og det bliver ikke ligefrem gratis. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66", "XO87v1AxbWQ", 1694, false, "https://www.youtube.com/watch?v=XO87v1AxbWQ", "/downloads/shows/Livet på gården/Season 2025/s2025e112000 - Oprydning, vores maskiner og planer for overetagen | Livet på gården Ep. 66.mp4", false, 3, ~U[2025-11-20 15:01:06Z]] 10:25:29.639 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.640 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-27 15:01:45Z], 3] 10:25:29.641 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "ad69fb69-29b8-4c3b-b249-6abb8b53877e", "qDN2-yN1EkI", false, 1232, false, "https://www.youtube.com/watch?v=qDN2-yN1EkI", 66, "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", false, false, 3, [], 1, ~U[2025-11-27 15:01:45Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er vi gået i køkkenet for at forsøge os med at lave vores egen kimchi, som jo er en form for fermenteret koreansk kål, som Mikkel elsker og spiser i store mængder. Det viser sig som lidt af en videnskab, men ikke desto mindre er Mikkel sjofel som altid og jeg forsøger bare at komme i mål med den kål, hahah. Det er samme dag simba prisen, som vi vinder - men som i nok ved, er jeg mere til kimchi end store sale og mennesker. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi laver hjemmelavet kimchi | Livet på gården Ep. 67", "qDN2-yN1EkI", 1232, false, "https://www.youtube.com/watch?v=qDN2-yN1EkI", "/downloads/shows/Livet på gården/Season 2025/s2025e112700 - Vi laver hjemmelavet kimchi | Livet på gården Ep. 67.mp4", false, 3, ~U[2025-11-27 15:01:45Z]] 10:25:29.642 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.643 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 15:01:34Z], 3] 10:25:29.644 [debug] QUERY OK source="media_items" db=0.9ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "99bff167-5f7d-42ab-9af5-c536d6861909", "kOicCYUbF9Y", false, 1620, false, "https://www.youtube.com/watch?v=kOicCYUbF9Y", 67, "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", false, false, 3, [], 1, ~U[2025-12-11 15:01:34Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit kommer i for alvor med ovenpå når vi lægger en endelig plan for ruminddelingen af overetagen og Mikkel grubler og fortæller hvorfor noget kan lade sig gøre, og andet ikke kan. Vi skal have gang i det helt store isoleringsarbejde, fordi det for alvor er blevet koldt - så vi knokler på og får slæbt isolering op og går igang. Jeg hjælper så godt jeg kan, men som i ved er Mikkel ikke altid begejstret for det jeg byder ind med. Vi kører timelapse derudaf og runder også \"Brohave bliver bøf\", hvilket Mikkel simpelthen ikke ved hvad er, hahahah\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68", "kOicCYUbF9Y", 1620, false, "https://www.youtube.com/watch?v=kOicCYUbF9Y", "/downloads/shows/Livet på gården/Season 2025/s2025e121100 - Vi isolerer overetagen og laver en planløsning | Livet på gården Ep. 68.mp4", false, 3, ~U[2025-12-11 15:01:34Z]] 10:25:29.645 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.645 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 15:00:08Z], 3] 10:25:29.647 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "07fafeed-8774-4651-b727-9bc07e2c2846", "49M-tMeNIb0", false, 1331, false, "https://www.youtube.com/watch?v=49M-tMeNIb0", 68, "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", false, false, 3, [], 1, ~U[2025-12-18 15:00:08Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården sørger vi for at få lukket af med vintermåtter oppe på overetagen. Jeg er i dårligt humør, en dag vi beslutter os for at hænge lyskæder op udenfor, men Mikkel er som altid smart i en fart og fyre alt muligt pis af, hahah. Derudover har vi kæmpe store problemer i hønsegården og har taget en stor beslutning. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69", "49M-tMeNIb0", 1331, false, "https://www.youtube.com/watch?v=49M-tMeNIb0", "/downloads/shows/Livet på gården/Season 2025/s2025e121800 - Vi hænger julelys op, tager store beslutninger og har et kæmpe problem | Livet på gården Ep. 69.mp4", false, 3, ~U[2025-12-18 15:00:08Z]] 10:25:29.647 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.648 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-08 15:00:33Z], 3] 10:25:29.649 [debug] QUERY OK source="media_items" db=0.9ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "b23f7365-f216-4c48-b50d-616631e9d7f3", "EzliYAXWUnU", false, 1463, false, "https://www.youtube.com/watch?v=EzliYAXWUnU", 69, "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", false, false, 3, [], 1, ~U[2026-01-08 15:00:33Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for HelloFresh\nSpar op til 959 kroner på dine første 5 leveringer med min rabatkode KRISTINES26 eller få rabatten via linket her: http://www.hellofresh.dk/KRISTINES26\n\nI denne video har vi endelig fundet den helt perfekte brugte trappe som Mikkel henter i Thy, på en trailer der ser pænt spændende ud. Opgaven er så at få den godt på plads inde i laden, indtil den skal monteres i huset. Der er også blevet tomt i hønsehuset for første gang i nærmest alt den tid vi har boet på gården og det synes jeg er ret svært. Jeg er igang i køkkenet og Mikkel fortsætter kampen med at isolere overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71", "EzliYAXWUnU", 1463, false, "https://www.youtube.com/watch?v=EzliYAXWUnU", "/downloads/shows/Livet på gården/Season 2026/s2026e010800 - En brugt trappe og et helt tomt hønsehus | Livet på gården Ep. 71.mp4", false, 3, ~U[2026-01-08 15:00:33Z]] 10:25:29.650 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.650 [debug] QUERY OK source="media_items" db=0.4ms idle=3.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-15 15:00:57Z], 3] 10:25:29.652 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "ec880486-3789-4e72-bb9f-d9585d739e17", "W25cAiJgVl4", false, 1063, false, "https://www.youtube.com/watch?v=W25cAiJgVl4", 70, "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", false, false, 3, [], 1, ~U[2026-01-15 15:00:57Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne episode har vi os en noget svag hund som er blevet opereret, jeg organiserer til den helt store guldmedalje og så er jeg altså begyndt at preppe og fylde skabene til ekstra op. Mikkel fyre rundt ovenpå og er ved at kunne se enden på isoleringen og så får vi for alvor et kig på hvordan vores hall kommer til at se ud - den bliver jo kæmpe! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72", "W25cAiJgVl4", 1063, false, "https://www.youtube.com/watch?v=W25cAiJgVl4", "/downloads/shows/Livet på gården/Season 2026/s2026e011500 - Carla bliver opereret og jeg er begyndt at preppe | Livet på gården Ep. 72.mp4", false, 3, ~U[2026-01-15 15:00:57Z]] 10:25:29.652 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.653 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-22 15:01:06Z], 3] 10:25:29.654 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "e685e078-1559-4dbb-b786-00a84aee8622", "ZhpmiMpVyZw", false, 1312, false, "https://www.youtube.com/watch?v=ZhpmiMpVyZw", 71, "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", false, false, 3, [], 1, ~U[2026-01-22 15:01:06Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne episode sælger vi keramik. I kommer med helt tæt på når jeg forbereder og sætter op. Min mor kommer os til undsætning for at hjælpe med pakkeriet, og jeg er som altid spændt som en flitsbue. Det hele bliver udsolgt på rekordtid og jeg er bare i chok altså. Det er SÅ vildt! \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73", "ZhpmiMpVyZw", 1312, false, "https://www.youtube.com/watch?v=ZhpmiMpVyZw", "/downloads/shows/Livet på gården/Season 2026/s2026e012200 - Sådan foregår det når jeg sælger keramik | Livet på gården Ep. 73.mp4", false, 3, ~U[2026-01-22 15:01:06Z]] 10:25:29.655 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.656 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-29 15:01:22Z], 3] 10:25:29.657 [debug] QUERY OK source="media_items" db=0.9ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "81b9eed8-f833-4073-8aaf-5544927e4711", "mJgxlMp3x34", false, 1476, false, "https://www.youtube.com/watch?v=mJgxlMp3x34", 72, "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", false, false, 3, [], 1, ~U[2026-01-29 15:01:22Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården er vi mildest talt ufatteligt nervøse. Efter en weekend hvor vi akut måtte kører Carla til dyrlægen, er Mikkel kørt afsted med hende til Viborg hvor hun skal ind til en neurolog, fordi hun opfører sig helt skørt og ved siden af sig selv. I mens forsøger jeg at distrahere mig selv i keramikken. Senere er der dårlig stemning på første salen da det går op for os at Willy bruger isolering som toilet - og så er vi en tur udenfor, for at rydde op efter nedrivningen af gavlene. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74", "mJgxlMp3x34", 1476, false, "https://www.youtube.com/watch?v=mJgxlMp3x34", "/downloads/shows/Livet på gården/Season 2026/s2026e012900 - Carla er ved hjernedyrlægen og vi er rædselsslagne | Livet på gården Ep. 74.mp4", false, 3, ~U[2026-01-29 15:01:22Z]] 10:25:29.658 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.658 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-05 15:01:29Z], 3] 10:25:29.660 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "c37df830-afe9-45ab-92b2-35547f91323b", "o4CgI8DjMPw", false, 1929, false, "https://www.youtube.com/watch?v=o4CgI8DjMPw", 73, "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", false, false, 3, [], 1, ~U[2026-02-05 15:01:29Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video fortsætter byggeriet og jeg får overtalt Mikkel til selv at tage kameraet med op og fortælle lidt mere teknisk om hvad han laver og hvorfor - og så har han lavet en timelapse (så cute). Mens der sker gevaldige fremskridt på første salen, er min første sal udfordret. Jeg er træt med træt på. Der er også kommet sne på gården og så opdatere jeg på hvordan det går med Carla. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75", "o4CgI8DjMPw", 1929, false, "https://www.youtube.com/watch?v=o4CgI8DjMPw", "/downloads/shows/Livet på gården/Season 2026/s2026e020500 - Mikkel overtager kameraet mens han bygger og fortæller | Livet på gården Ep. 75.mp4", false, 3, ~U[2026-02-05 15:01:29Z]] 10:25:29.660 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.661 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-12 15:01:16Z], 3] 10:25:29.662 [debug] QUERY OK source="media_items" db=0.9ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "0c817c92-4c74-47b6-8d02-d3a826562c8e", "gZRnKqaiy3k", false, 1827, false, "https://www.youtube.com/watch?v=gZRnKqaiy3k", 74, "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", false, false, 3, [], 1, ~U[2026-02-12 15:01:16Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården går Mikkel i krig med at rette gulvet op på overetagen og får lagt en en gulvspånplader. Der er nedslående nyheder fra Krog, the man of all men, som er vores mest pålidelige hjælp - og så tager vi altså en snak om økonomien i en renovering som vores. Hvad har overetagen kostet indtil videre? Og hvad regner vi med at bruge? Mikkel tegner og fortæller grundigt om den endelige planløsning som nu er fastlagt - og nårh ja, så har jeg fået min menstruation for første gang siden fødslen og det er ikke for tøsedrenge\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76", "gZRnKqaiy3k", 1827, false, "https://www.youtube.com/watch?v=gZRnKqaiy3k", "/downloads/shows/Livet på gården/Season 2026/s2026e021200 - Hvad koster det at totalrenovere en gård fra 1877? | Livet på gården Ep. 76.mp4", false, 3, ~U[2026-02-12 15:01:16Z]] 10:25:29.663 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.663 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 15:01:02Z], 3] 10:25:29.665 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "51ade7a2-d387-47c3-ac2f-9cf2bd31faa9", "XPD5zoS3yLA", false, 1488, false, "https://www.youtube.com/watch?v=XPD5zoS3yLA", 75, "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", false, false, 3, [], 1, ~U[2026-02-19 15:01:02Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit trodser vi kulden og begynder at måle op og lægge planer for udvidelsen af mit keramikværksted som vi har planer om. Mikkel hjælper mig med at lave tørreplader af gips til keramikken - og så snakker vi om hvad folk på reddit synes om os. Jeg tager jer også med lidt mere i detaljen af hvordan det foregår når jeg blandt andet glasere kopper. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77", "XPD5zoS3yLA", 1488, false, "https://www.youtube.com/watch?v=XPD5zoS3yLA", "/downloads/shows/Livet på gården/Season 2026/s2026e021900 - Planer for det nye keramikværksted og glasering af kopper | Livet på gården Ep. 77.mp4", false, 3, ~U[2026-02-19 15:01:02Z]] 10:25:29.665 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.666 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 15:00:51Z], 3] 10:25:29.668 [debug] QUERY OK source="media_items" db=1.0ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi har købt en 3D printer! | Livet på gården Ep. 78", "6284d67f-0c3c-41ca-b176-d8fbe8d0a7f5", "Op8Tlzdn5eo", false, 1391, false, "https://www.youtube.com/watch?v=Op8Tlzdn5eo", 76, "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", false, false, 3, [], 1, ~U[2026-02-26 15:00:51Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for HelloFresh. \n\nSpar op til 959 kroner på dine første 5 måltidskasser og få gratis snacks med de første 3 måneder med min kode: KRISTINES2026\nEller få rabatten helt automatisk ved brug af dette link: http://www.hellofresh.dk/KRISTINES2026\n\ndenne video er vores længe ventede 3D printer endelig kommet hjem - noget vi har set frem til og særligt Mikkel som den grej freak han er, synes det er spændende. Vi samler den og prøver den af - og sikke en verden! I kommer med i køkkenet hvor den står på en smule primitiv madlavning fordi køkkenet flyder, fordi der er VVS arbejde igang og så viser jeg nogle af de sager vi har printet frem. Og er meget fascineret. Vi er også i sving med den helt store rengøring inden Rasmus Brohave kommer på besøg og skal overnatte - og det er jo ingen hemmelighed at min rengøringsstandard ikke helt lever op til den meget pæne mands, haha\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: business@kristinesloth.dk", "Vi har købt en 3D printer! | Livet på gården Ep. 78", "Op8Tlzdn5eo", 1391, false, "https://www.youtube.com/watch?v=Op8Tlzdn5eo", "/downloads/shows/Livet på gården/Season 2026/s2026e022600 - Vi har købt en 3D printer! | Livet på gården Ep. 78.mp4", false, 3, ~U[2026-02-26 15:00:51Z]] 10:25:29.668 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.669 [debug] QUERY OK source="media_items" db=0.4ms idle=3.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-05 15:00:58Z], 3] 10:25:29.670 [debug] QUERY OK source="media_items" db=0.9ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "1d903271-e9e8-45f0-bbf7-3d0db77b401c", "Th4fpPdHVU0", false, 1601, false, "https://www.youtube.com/watch?v=Th4fpPdHVU0", 77, "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", false, false, 3, [], 1, ~U[2026-03-05 15:00:58Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården er der virkelig gang i den. Vi starter ugen ud med at have Rasmus Brohave til overnatning - og han får den store rundtur. Sneen er for alvor kommet på besøg og Mikkel har naturligvis travlt med at komme ud i minilæsseren i en fart - og helt frivilligt tager han kameraet med, så i kan se hvordan det foregår at rydde vores meget lange grusvej. Mine forældre er på besøg - og som altid hjælper min mor med noget husligt og min far tilslutter sig Mikkel og byggeriet - jeg laver babymad og så er jeg blevet besat af surdej. Og nårh jo, så er min baby begyndt at sove om natten.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79", "Th4fpPdHVU0", 1601, false, "https://www.youtube.com/watch?v=Th4fpPdHVU0", "/downloads/shows/Livet på gården/Season 2026/s2026e030500 - Brohave på besøg, snestorm og surdejsbesættelse| Livet på gården Ep. 79.mkv", false, 3, ~U[2026-03-05 15:00:58Z]] 10:25:29.671 [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" = ?) [3] 10:25:29.672 [debug] QUERY OK source="media_items" db=0.5ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-12 15:00:58Z], 3] 10:25:29.673 [debug] QUERY OK source="media_items" db=0.9ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "8a2f728b-4f41-4cf1-a6bd-51900dd0423e", "WZAGvRqldgo", false, 1829, false, "https://www.youtube.com/watch?v=WZAGvRqldgo", 78, "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", false, false, 3, [], 1, ~U[2026-03-12 15:00:58Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er mine forældre på besøg og min mor og jeg sætter os for langt om længe at få støbt nogle fugtkasser til mig, som er et uundværligt redskab i keramikværkstedet. Jeg er efter lang tids pause tilbage ved bageriet og kaster mig over nogle virale chokoladeboller - og så har vvs'eren været på for at etablere pexslanger til kold og varm vand, så Mikkel nu kan komme videre med tømrerdelen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80", "WZAGvRqldgo", 1829, false, "https://www.youtube.com/watch?v=WZAGvRqldgo", "/downloads/shows/Livet på gården/Season 2026/s2026e031200 - Fugtkasser, chokoladeboller og vvs arbejde | Livet på gården Ep. 80.mkv", false, 3, ~U[2026-03-12 15:00:58Z]] 10:25:29.674 [debug] QUERY OK source="sources" db=0.3ms idle=4.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.674 [debug] QUERY OK source="media_items" db=0.4ms idle=3.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-19 15:01:40Z], 3] 10:25:29.678 [debug] QUERY OK source="media_items" db=2.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "1cf7a084-2d64-4dac-b982-ac49cd9caa38", "wvCb1ystnC0", false, 1440, false, "https://www.youtube.com/watch?v=wvCb1ystnC0", 79, "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", false, false, 3, [], 1, ~U[2026-03-19 15:01:40Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit prøver jeg at bage med min surdej for aller første gang - det viser sig jo at være en lang proces, men det jeg tror faktisk det går okay? Mikkel er i fuld gang med at bygge skillevægge på første salen og han tager kameraet med og fortæller hvordan og hvorledes - og laver timelapse af processen. Malene kommer på besøg efter mange måneder - og hvad laver hun egentlig nu? Det runder vi - og så tager vi en status på forretningsdelen i keramikken og snakker om hvordan det går. Og så har jeg lavet kopper til et særligt par. Malene kan ikke gætte hvem de er til - men det kan du måske? \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81", "wvCb1ystnC0", 1440, false, "https://www.youtube.com/watch?v=wvCb1ystnC0", "/downloads/shows/Livet på gården/Season 2026/s2026e031900 - Malene på besøg, surdej og skillevægge | Livet på gården Ep. 81.mkv", false, 3, ~U[2026-03-19 15:01:40Z]] 10:25:29.678 [debug] QUERY OK source="sources" db=0.2ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.679 [debug] QUERY OK source="media_items" db=0.4ms idle=5.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 15:01:31Z], 3] 10:25:29.680 [debug] QUERY OK source="media_items" db=0.9ms idle=5.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "ed2de519-9952-4dab-94cf-f2e9e798701a", "pxD1_Ax0eMI", false, 1393, false, "https://www.youtube.com/watch?v=pxD1_Ax0eMI", 80, "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", false, false, 3, [], 1, ~U[2026-03-26 15:01:31Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video har Mikkel for alvor taget mine ord til sig og taget kameraet med ovenpå mens han er i fuld gang med gulvvarmen - han går i detaljer med hvordan han gør og hvilke tanker han har gjort sig om processen. Blandt andet fortæller han hvordan han har valgt at lave et \"svømmende gulv\". Vi er på årets første have vandring og beslutter os for nu at sætte alt ind på at den køkkenhave skal komme til at spille. Alt skal væk og etableres helt på ny!\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82", "pxD1_Ax0eMI", 1393, false, "https://www.youtube.com/watch?v=pxD1_Ax0eMI", "/downloads/shows/Livet på gården/Season 2026/s2026e032600 - Kan vi lave den perfekte køkkenhave? | Livet på gården Ep. 82.mkv", false, 3, ~U[2026-03-26 15:01:31Z]] 10:25:29.681 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [3] 10:25:29.682 [debug] QUERY OK source="media_items" db=0.4ms idle=3.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 14:00:55Z], 3] 10:25:29.683 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "889e5a29-919a-4ac1-b953-86bd766ee804", "dZk6prUzZkw", false, 1291, false, "https://www.youtube.com/watch?v=dZk6prUzZkw", 81, "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", false, false, 3, [], 1, ~U[2026-04-02 14:00:55Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit går vi for alvor igang med den stor omvæltning af køkkenhaven. Vi rydder drivhuset, fjerner alle bedene og jævner jorden så vi kan starte helt forfra. Vi har købt en drone, så som noget nyt er i også med fra luften og kan se hvordan det går når vi kører med minilæsseren, jævner sand ud og lægger helt ny ukrudtsdug. Jeg gør også klar til endnu et keramiksalg og i er med når jeg forbereder og tager billeder af alle sagerne. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83", "dZk6prUzZkw", 1291, false, "https://www.youtube.com/watch?v=dZk6prUzZkw", "/downloads/shows/Livet på gården/Season 2026/s2026e040200 - Vi starter HELT forfra med køkkenhaven! | Livet på gården Ep. 83.mkv", false, 3, ~U[2026-04-02 14:00:55Z]] 10:25:29.684 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.684 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-16 14:00:44Z], 3] 10:25:29.686 [debug] QUERY OK source="media_items" db=0.9ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "b73ff0d6-d18a-4237-9992-583b2168875c", "SIJsPP2BFVw", false, 1232, false, "https://www.youtube.com/watch?v=SIJsPP2BFVw", 82, "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", false, false, 3, [], 1, ~U[2026-04-16 14:00:44Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er Mikkel i fuld gang med at lave skillevægge på førstesalen. De bliver isoleret og der bliver sat pharmacell op - han fortæller hvorfor og hvordan han gør både det ene og det andet. Vi har ryddet hele mit keramikværksted, for at kunne komme igang med renoveringen - og Mikkel laver både flydespartel og laver i øvrigt også hvad han selv kalder det grimmeste fugearbejde nogensinde. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84", "SIJsPP2BFVw", 1232, false, "https://www.youtube.com/watch?v=SIJsPP2BFVw", "/downloads/shows/Livet på gården/Season 2026/s2026e041600 - Mikkel bygger skillevægge og laver flydespartel | Livet på gården Ep. 84.mkv", false, 3, ~U[2026-04-16 14:00:44Z]] 10:25:29.686 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.687 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-23 14:01:00Z], 3] 10:25:29.718 [debug] QUERY OK source="media_items" db=30.0ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "ecbb4631-be8f-48ea-a8dc-44959faec986", "da0fXptSlUY", false, 1621, false, "https://www.youtube.com/watch?v=da0fXptSlUY", 83, "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", false, false, 3, [], 1, ~U[2026-04-23 14:01:00Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit må vi i haven for at komme videre med køkkenhaven - men nok mest af alt for at prøve det nyeste skud på stammen i Mikkels maskinpark, nemlig hans nye stamper. Mange bolde er i luften og vi har indhentet tilbud på beton til det nye værksted, så det er tid til at der bliver kørt sand ind - og så lægger Mikkel epoxy på det spartlede gulv i den gamle del af værkstedet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85", "da0fXptSlUY", 1621, false, "https://www.youtube.com/watch?v=da0fXptSlUY", "/downloads/shows/Livet på gården/Season 2026/s2026e042300 - Mikkels nye maskine og epoxygulv | Livet på gården Ep. 85.mkv", false, 3, ~U[2026-04-23 14:01:00Z]] 10:25:29.718 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=33.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.719 [debug] QUERY OK source="media_items" db=0.4ms idle=32.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-30 14:01:00Z], 3] 10:25:29.720 [debug] QUERY OK source="media_items" db=0.8ms idle=32.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "b18f7a64-dd38-4651-9494-40ea8c944e34", "UmaRjrKDD40", false, 1577, false, "https://www.youtube.com/watch?v=UmaRjrKDD40", 84, "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", false, false, 3, [], 1, ~U[2026-04-30 14:01:00Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården er Mikkel som sædvanligt i fuld gang med at fikse sager, mens jeg lige er inde i en periode med lidt lav energi. Den dårlige søvn er vendt retur. Den bliver dog løftet da jeg beslutter mig for at give mig i kast med sager og hjælper Mikkel i keramikkken, med at rengøre de gamle bjælker. Han sætter Fermacell op. Vi begiver os også ud i noget nær det dummeste projekt nogensinde. Nemlig at rykke og tilte vores 10 meter lange drivhus. Kun 2 mand. Og det går helt galt. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det her er det dummeste vi har gjort | Livet på gården Ep. 86", "UmaRjrKDD40", 1577, false, "https://www.youtube.com/watch?v=UmaRjrKDD40", "/downloads/shows/Livet på gården/Season 2026/s2026e043000 - Det her er det dummeste vi har gjort | Livet på gården Ep. 86.mkv", false, 3, ~U[2026-04-30 14:01:00Z]] 10:25:29.721 [debug] QUERY OK source="sources" db=0.2ms idle=33.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.722 [debug] QUERY OK source="media_items" db=0.5ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-07 14:36:48Z], 3] 10:25:29.723 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "1f247b93-d727-486e-a64d-a28455b9873c", "RJWBKBicq0Q", false, 1852, false, "https://www.youtube.com/watch?v=RJWBKBicq0Q", 85, "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", false, false, 3, [], 1, ~U[2026-05-07 14:36:48Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården er det blevet en helt særlig dag. Nemlig dagen for opstart af min datter i dagplejen. Og det er ikke entydigt positive følelser der fylder hos mig. Derudover tager vi en status på køkkenhaven, og så går jeg i fuld gang med at male mit keramikværksted i ret seje farver. Vi får også ryddet godt op, og undervejs kan man vidst roligt sige at vores forhold kommer til udtryk både når der skal bæres et tungt bord og vi finder en øl fra dengang jeg blev nominere til en Zulu Award. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87", "RJWBKBicq0Q", 1852, false, "https://www.youtube.com/watch?v=RJWBKBicq0Q", "/downloads/shows/Livet på gården/Season 2026/s2026e050700 - Dagplejestart og vores forhold i en nøddeskal | Livet på gården Ep. 87.mkv", false, 3, ~U[2026-05-07 14:36:48Z]] 10:25:29.723 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.724 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-14 14:00:49Z], 3] 10:25:29.725 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "bc0fa3ef-de24-4e1e-be5e-fac78132acf4", "YXmL6qrY1G0", false, 1704, false, "https://www.youtube.com/watch?v=YXmL6qrY1G0", 86, "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", false, false, 3, [], 1, ~U[2026-05-14 14:00:49Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit starter vi ud i haven hvor Mikkel er igang med højtryksrenseren, fordi terrasse sæsonen pludselig er over os og alt skal rengøres. Vi tager vigtige og endelige beslutninger om det nye keramikværksted og får åbnet op mellem de 2 rum. Mikkel har også travlt med at klargøre den nye del, fordi der kommer en betonbil og fylder det - og så er vores vinduer til overetagen endelig kommet hjem. Og man kan vidst roligt sige at jeg er i strålende humør, fordi tingene endeligt rykker sig. Mikkel bedste ven krog er også ENDELIG tilbage efter at have været sengeliggende med et brækket kraveben i flere måneder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88", "YXmL6qrY1G0", 1704, false, "https://www.youtube.com/watch?v=YXmL6qrY1G0", "/downloads/shows/Livet på gården/Season 2026/s2026e051400 - Forårsklargøring, beton og ENDELIG vinduer | Livet på gården Ep. 88.mkv", false, 3, ~U[2026-05-14 14:00:49Z]] 10:25:29.726 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.726 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-21 14:10:09Z], 3] 10:25:29.728 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "1a644151-f49e-4e87-96a9-5b3aec97abec", "7HdqBREGHtA", false, 2166, false, "https://www.youtube.com/watch?v=7HdqBREGHtA", 87, "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", false, false, 3, [], 1, ~U[2026-05-21 14:10:09Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit sker der ikke så lidt endda. Vi har vores nærmest travleste byggemæssige weekend i gårdens historie - der er netop blevet støbt betongulv i keramikværksted som vi ser og går på for første gang. Vi påbegynder nedrivning så der kan blive gjort plads til de nye vinduer derovre - OG så kommer min søster og hendes kæreste på overnatning for at hjælpe med at sætte vinduer i HELE overetagen i STORMVEJR. Man må bare sige at den slags går lige i nervesystemet - men hold op hvor begynder vi bare at fornemme hvilket hus det bliver med lys i alle hjørner af overetagen. \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89", "7HdqBREGHtA", 2166, false, "https://www.youtube.com/watch?v=7HdqBREGHtA", "/downloads/shows/Livet på gården/Season 2026/s2026e052100 - Det mest nervepirrende i hele vores renovering | Livet på gården Ep. 89.mkv", false, 3, ~U[2026-05-21 14:10:09Z]] 10:25:29.728 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.729 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-28 14:00:38Z], 3] 10:25:29.731 [debug] QUERY OK source="media_items" db=1.1ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "a1c894ed-9d77-4c98-b916-3948a8de36df", "Ndtyto4SfDs", false, 1557, false, "https://www.youtube.com/watch?v=Ndtyto4SfDs", 88, "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", false, false, 3, [], 1, ~U[2026-05-28 14:00:38Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for staalhaven.dk. I denne video er dagen endelig kommet hvor vi modtager højbede til køkkenhaven og for alvor kan vi komme igang med at indrette den. Vi er også endelig kommet dertil i processen hvor der skal indrettes med kapilærkasser i drivhuset og plantes tomater og tingene begynder for alvor at give sno sig. Og forsøget på at lave den perfekte køkkenhave uden ukrudt tager form. Jeg er også igang i værkstedet for at slibe væggen, så den kan blive olieret - og det er noget af en affære at stikke mig sådan en rystepudser når jeg er alene hjemme skal jeg hilse at sige. \n\nTjek stålhaven ud her: https://staalhaven.dk\n\nJeg har valgt Stålhaven, fordi jeg gerne ville have en løsning, der ikke bare var pæn, men også ordentligt lavet. For mig handlede det især om specialmål, kvalitet, dansk produktion og god kundeservice. Jeg kunne få produktet tilpasset min have, vælge sneglekant og samtidig være tryg ved, at det er lavet i kraftigt stål på deres egen fabrik i Danmark. Det føles som en løsning, der er lavet til at holde. Ikke bare til at se godt ud den første sommer.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90", "Ndtyto4SfDs", 1557, false, "https://www.youtube.com/watch?v=Ndtyto4SfDs", "/downloads/shows/Livet på gården/Season 2026/s2026e052800 - Sådan laver vi den nemmeste ukrudtsfrie køkkenhave | Livet på gården Ep. 90.mkv", false, 3, ~U[2026-05-28 14:00:38Z]] 10:25:29.731 [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" = ?) [3] 10:25:29.732 [debug] QUERY OK source="media_items" db=0.4ms idle=3.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-04 14:00:03Z], 3] 10:25:29.733 [debug] QUERY OK source="media_items" db=0.9ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "1aa784cd-57fc-4df9-b448-9daf095b86b1", "f16_HDKB4SQ", false, 1465, false, "https://www.youtube.com/watch?v=f16_HDKB4SQ", 89, "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", false, false, 3, [], 1, ~U[2026-06-04 14:00:03Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video sker der alle mulige småting. Jeg skal lige vænne mig til pludselig at have tid for mig selv efter vores datter er startet i dagpleje, og jeg har fået frigivet noget overskud. Jeg giver mig i kast med at male vores hegn, vi får slæbt vinduer ind i værkstedet og sat dem i, Mikkel har sat mig til at spartle og jeg forsøger at male den bare trævæg i værkstedet med både det ene og det andet for at få det rigtige udtryk - det lykkedes heldigvis til sidst. Der er gang i mange ting - men ligeså stille begynder vi også at kunne fornemme målet.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet tager endelig form! | Livet på gården Ep. 91", "f16_HDKB4SQ", 1465, false, "https://www.youtube.com/watch?v=f16_HDKB4SQ", "/downloads/shows/Livet på gården/Season 2026/s2026e060400 - Keramikværkstedet tager endelig form! | Livet på gården Ep. 91.mkv", false, 3, ~U[2026-06-04 14:00:03Z]] 10:25:29.734 [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" = ?) [3] 10:25:29.734 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-11 14:00:34Z], 3] 10:25:29.736 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "98599663-9e42-4617-a28f-bfbf33e9e7b7", "n93gXkFbEZc", false, 1786, false, "https://www.youtube.com/watch?v=n93gXkFbEZc", 90, "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", false, false, 3, [], 1, ~U[2026-06-11 14:00:34Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video er vi i haven hvor vi endelig er færdig med at sætte højbede op og det er blevet tid til at fylde dem og plante alverdens grøntsager ud. Ambitionerne er tårnhøje i år og jeg har fundet min frøbank frem for at lægge en plan. Jeg giver jer mine bedste tips til køkkenhaven, udfra de mange fejl jeg tidligere har begået - og så har vi besluttet os for at i år er året hvor vi skal have løbeænder. Mikkel skraber også et godt lag græstørv af ude på marken, fordi vi skal ha plantet solsikker og sat kartofler.\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92", "n93gXkFbEZc", 1786, false, "https://www.youtube.com/watch?v=n93gXkFbEZc", "/downloads/shows/Livet på gården/Season 2026/s2026e061100 - Kan vi blive selvforsynende med grøntsager? | Livet på gården Ep. 92.mkv", false, 3, ~U[2026-06-11 14:00:34Z]] 10:25:29.736 [debug] QUERY OK source="sources" db=0.1ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.737 [debug] QUERY OK source="media_items" db=0.3ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-18 14:00:30Z], 3] 10:25:29.738 [debug] QUERY OK source="media_items" db=0.9ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "4e1036de-6d6f-4a84-a419-0c21282a1a8c", "PnawT2un6OQ", false, 1864, false, "https://www.youtube.com/watch?v=PnawT2un6OQ", 91, "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", false, false, 3, [], 1, ~U[2026-06-18 14:00:30Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame\nSpar op til 959 kr. på dine 5 første kasser fra HelloFresh med min kode KRISTINEJUNI eller klik på linket og få rabatten automatisk. \nKlik her: www.hellofresh.dk/KRISTINEJUNI\n\nI dette er vi endelig gået igang med projekt and - vi bygger verdens nemmeste andehus på en palle, med genbrugsmaterialer og jeg henter ænder som skal flytte ind ved siden af vores nu færdige køkkenhave. Mikkel ved bare ingenting om hvad jeg kommer hjem med. Jeg planter basilikum mellem mine tomatplanter og så sender jeg dronen i luften for at vise den nye køkkenhave fra luften, og man kan vidst roligt sige at vi er begejstret for resultatet. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93", "PnawT2un6OQ", 1864, false, "https://www.youtube.com/watch?v=PnawT2un6OQ", "/downloads/shows/Livet på gården/Season 2026/s2026e061800 - Jeg overrasker Mikkel med løbeænder! | Livet på gården Ep. 93.mkv", false, 3, ~U[2026-06-18 14:00:30Z]] 10:25:29.739 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.739 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-25 14:00:35Z], 3] 10:25:29.741 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En stor gave og keramikproduktion | Livet på gården Ep. 94", "a85150fe-3da0-40d2-8188-c60dbcf86d75", "_yVgsAnBwjQ", false, 1619, false, "https://www.youtube.com/watch?v=_yVgsAnBwjQ", 92, "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", false, false, 3, [], 1, ~U[2026-06-25 14:00:35Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården er vi endelig nået dertil i renoveringen af værkstedet at der skal males vægge og gulv, det gør en kæmpe forskel og man begynder for alvor at kunne fornemme hvilket slags rum det bliver. Jeg kan heller ikke længere holde min keramikabstinenser ud, så Mikkel sørger for at jeg kan begynde at dreje på en midlertidig plads indtil værkstedet er klar. Det er også blevet fars dag og jeg giver Mikkel er meget stort ønske på hans liste - og så giver jeg en status på haven og drivhuset - og alle de grøntsager vi har plantet, samt vores løbe ænder. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En stor gave og keramikproduktion | Livet på gården Ep. 94", "_yVgsAnBwjQ", 1619, false, "https://www.youtube.com/watch?v=_yVgsAnBwjQ", "/downloads/shows/Livet på gården/Season 2026/s2026e062500 - En stor gave og keramikproduktion | Livet på gården Ep. 94.mkv", false, 3, ~U[2026-06-25 14:00:35Z]] 10:25:29.741 [debug] QUERY OK source="sources" db=0.1ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.742 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-02 14:00:21Z], 3] 10:25:29.743 [debug] QUERY OK source="media_items" db=1.0ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "6c90821a-8781-4c69-9237-2e63d32c6439", "B_bPtvpGVx4", false, 1577, false, "https://www.youtube.com/watch?v=B_bPtvpGVx4", 93, "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", false, false, 3, [], 1, ~U[2026-07-02 14:00:21Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Videoen er reklame for dyrenes beskyttelse, som jeg er ambassadør for. Jeg har ikke modtaget betaling. \n\nI dette afsnit er jeg på besøg hos dyrenes beskyttelse som jeg er ambassadør for, fordi vi nu går ind i højsæsonen for herreløs kattekillinger og missemødre. Vi møder også Kala og Wilma, 2 helt fantastiske hunde som sidder lidt fast og ingen ansøgninger får om nye hjem. Det er helt uforståeligt for begge hunde er helt fantastiske. Måske en af dem skal bo hos dig? Jeg får en rundtur og møder alt fra slanger til skildpadder og lære en masse nyt. Og så bliver jeg fristet mere end en gang, til at tage nogen af de dejlige dyr med hjem, kan man vidst roligt sige.\n\nAlle dyrene i videoen sidder på internattet i Århus og du kan finde alle dyr til pension her: https://www.dyrenesbeskyttelse.dk/adopter-et-dyr?shelter[83626]=83626Her finder du hunden Kala: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-16812\n\nHer finder du Wilma: https://www.dyrenesbeskyttelse.dk/adopter/dyrenes-beskyttelse-aarhus/d-18067\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95", "B_bPtvpGVx4", 1577, false, "https://www.youtube.com/watch?v=B_bPtvpGVx4", "/downloads/shows/Livet på gården/Season 2026/s2026e070200 - På besøg hos dyrenes beskyttelse | Livet på gården Ep. 95.mkv", false, 3, ~U[2026-07-02 14:00:21Z]] 10:25:29.744 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.744 [debug] QUERY OK source="media_items" db=0.3ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-09 14:00:16Z], 3] 10:25:29.746 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "0d00723e-ae08-43e9-b173-78fd3970e5ae", "DDVRQGOAxZs", false, 1588, false, "https://www.youtube.com/watch?v=DDVRQGOAxZs", 94, "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", false, false, 3, [], 1, ~U[2026-07-09 14:00:16Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er ved ved at lægge aller sidste hånd på byggedetaljerne i keramikken, og jeg har handlet stort ind til indretningen, så i får et haul - Mikkel er ved at være godt træt af at lave lofter, så jeg tager over og skære pinde til loftet, med pænt meget skepsis fra Mikkel. Men hvor svært kan det være? Derudover får jeg gang i organiseringen af værkstedet og så drejer jeg for aller første gang og føler mig absurd heldig over hvor fantastisk værkstedet bliver. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96", "DDVRQGOAxZs", 1588, false, "https://www.youtube.com/watch?v=DDVRQGOAxZs", "/downloads/shows/Livet på gården/Season 2026/s2026e070900 - Rollebytning, en kæmpe sav og værkstedshaul | Livet på gården Ep. 96.mkv", false, 3, ~U[2026-07-09 14:00:16Z]] 10:25:29.746 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.747 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-23 14:00:27Z], 3] 10:25:29.761 [debug] QUERY OK source="media_items" db=13.1ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "cd03c32d-f9eb-46d6-a52e-afdce2251fbd", "nVHF5b2mfcg", false, 2296, false, "https://www.youtube.com/watch?v=nVHF5b2mfcg", 95, "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", false, false, 3, [], 1, ~U[2026-07-23 14:00:27Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Videoen indeholder reklame for mofibo. \n\nPrøv Mofibo gratis i 30 dage med min kode “kristine” eller klik på linket: \nhttps://mofibo.com/dk/c/kristine\n\nI denne video handler om at vi endelig begynder at indrette keramik værkstedet, så det bliver både hyggeligt og inspirerende. Vi Laver de aller sidste detaljer og jeg kommer så småt igang med min keramikproduktion igen - og så kommer Felix på besøg og får den helt store rundvisning og ser alt det nye der er sket de sidste par måneder, og han er faktisk imponeret. Særligt køkkenhaven synes han er fed - jeg lærer ham på vejen om alle mulige random have ting. Han har nemlig selv lige købt hus, så han kan jo ligeså godt lære det.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97", "nVHF5b2mfcg", 2296, false, "https://www.youtube.com/watch?v=nVHF5b2mfcg", "/downloads/shows/Livet på gården/Season 2026/s2026e072300 - Keramikværkstedet er ENDELIG færdigt! | Livet på gården Ep. 97.mkv", false, 3, ~U[2026-07-23 14:00:27Z]] 10:25:29.761 [debug] QUERY OK source="sources" db=0.2ms idle=16.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.762 [debug] QUERY OK source="media_items" db=0.4ms idle=15.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-07-30 14:00:02Z], 3] 10:25:29.764 [debug] QUERY OK source="media_items" db=1.8ms idle=15.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "7d07a706-69aa-4f07-b46a-8c5f0e397eee", "ay_WnFmck9s", false, 1613, false, "https://www.youtube.com/watch?v=ay_WnFmck9s", 96, "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", false, false, 3, [], 1, ~U[2026-07-30 14:00:02Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video kommer i med når jeg tager en status rundt i haven og ser på om det faktisk går bedre i år - og det må vi absolut konkludere indtil videre. Jeg har mig også en arbejdsdag i keramikværkstedet hvor jeg blandt andet skal prøve mine nye slibeskiver, hvilket sætter mine nerver på spidsen - og så kommer Mikkel hjem med en ny ATV på traileren til mig?! Og nårh ja, vi har også købt en ny bil! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98", "ay_WnFmck9s", 1613, false, "https://www.youtube.com/watch?v=ay_WnFmck9s", "/downloads/shows/Livet på gården/Season 2026/s2026e073000 - Succes i køkkenhaven og en ny ATV | Livet på gården Ep. 98.mkv", false, 3, ~U[2026-07-30 14:00:02Z]] 10:25:29.765 [debug] QUERY OK source="sources" db=0.2ms idle=17.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.765 [debug] QUERY OK source="media_items" db=0.4ms idle=4.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-06 14:00:02Z], 3] 10:25:29.767 [debug] QUERY OK source="media_items" db=0.9ms idle=4.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "08f76260-35d9-4a4d-9955-355f2252d1b4", "hEbBs6J6HSM", false, 1593, false, "https://www.youtube.com/watch?v=hEbBs6J6HSM", 97, "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", false, false, 3, [], 1, ~U[2026-08-06 14:00:02Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "Denne video indeholder reklame for Desenio. \n\nMed min kode \"KRISTINE\" kan du spare 50% på alle plakater, 30% på alle lærreder og 20% på personlige plakater og alt andet. \n\nTilbuddet gælder til og med den 31. August. \n\nI denne video er jeg i haven hvor jeg giver en status på det hele - noget går virkelig godt, mens andet halter, og jeg har simpelthen sat alt ind på at redde mine drivhusplanter som er angrebet af både det ene og det andet. I keramikken er der blevet lavet mere finish og det begynder ægte at spille - blandt andet har vi lavet en ny ret fantastisk billedvæg. Udover det er vi også på en kirsebær mission nærmest med livet på spil, når Mikkel får den dumme ide at jeg skal op med minilæsseren for at plukke de sølle sidste kirsebær som fuglene endnu ikke har spist. Det er i øvrigt også kamp morsomt - nu, vel og mærke. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99", "hEbBs6J6HSM", 1593, false, "https://www.youtube.com/watch?v=hEbBs6J6HSM", "/downloads/shows/Livet på gården/Season 2026/s2026e080600 - En meget dum ide og en redningsaktion i drivhuset | Livet på gården Ep. 99.mkv", false, 3, ~U[2026-08-06 14:00:02Z]] 10:25:29.768 [debug] QUERY OK source="sources" db=0.1ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.768 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-20 14:00:33Z], 3] 10:25:29.769 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "a5de6619-c645-4340-992f-0105990d392f", "s3kP8lEsOEQ", false, 2197, false, "https://www.youtube.com/watch?v=s3kP8lEsOEQ", 98, "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", false, false, 3, [], 1, ~U[2026-08-20 14:00:33Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video sker der ikke så lidt. Vi har endelig taget beslutningen om at vi skal have høns igen og det betyder nyt hønsehus, hvilket vi efterhånden har en del erfaring med - så denne gang skal vi simpelthen bygge det perfekte hønsehus, med så få penge som muligt og med løsninger som gør hønsehold nemt. Vi er også ved at gøre klar til endnu et keramiksalg. Blandt andet laver Mikkel smarte baggrundsplader til mit foto-hjørne. Malene kommer også for første gang i mange måneder og er forbløffet over alt det nye som er sket, og en anelse imponeret.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100", "s3kP8lEsOEQ", 2197, false, "https://www.youtube.com/watch?v=s3kP8lEsOEQ", "/downloads/shows/Livet på gården/Season 2026/s2026e082000 - Kan vi bygge et hønsehus helt gratis? | Livet på gården Ep. 100.mkv", false, 3, ~U[2026-08-20 14:00:33Z]] 10:25:29.770 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.770 [debug] QUERY OK source="media_items" db=0.3ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-27 14:00:13Z], 3] 10:25:29.774 [debug] QUERY OK source="media_items" db=3.2ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Videre med renovering og nye høns! | Livet på gården Ep. 101", "16c9f211-cd17-4cb3-9a4f-87993268b521", "EPOSOFmeG0o", false, 1119, false, "https://www.youtube.com/watch?v=EPOSOFmeG0o", 99, "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", false, false, 3, [], 1, ~U[2026-08-27 14:00:13Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er dagen endelig kommet hvor der skal flytte høns ind i vores hjemmelavede flytbare hønsehus på marken - og samtidig oplever vores datter dem også for første gang og elsker dem. Jeg tager saven i egen hånd og går i krig med selv at lave en vigtig byggedetalje - med et tåleligt, men enormt grimt resultatet, og så er ugen endelig kommet hvor min søster og hendes kæreste Rasmus er flyttet ind på marken i deres campingvogn og der skal knokles igennem på overetagen så vi forhåbenligt når et godt stykke med ekstra hænder.\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Videre med renovering og nye høns! | Livet på gården Ep. 101", "EPOSOFmeG0o", 1119, false, "https://www.youtube.com/watch?v=EPOSOFmeG0o", "/downloads/shows/Livet på gården/Season 2026/s2026e082700 - Videre med renovering og nye høns! | Livet på gården Ep. 101.mkv", false, 3, ~U[2026-08-27 14:00:13Z]] 10:25:29.775 [debug] QUERY OK source="sources" db=0.2ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.775 [debug] QUERY OK source="media_items" db=0.4ms idle=5.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-03 14:00:22Z], 3] 10:25:29.777 [debug] QUERY OK source="media_items" db=0.8ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "7464d517-b47c-42d2-a725-2a583f691b2b", "X9r5hiSunVQ", false, 1288, false, "https://www.youtube.com/watch?v=X9r5hiSunVQ", 100, "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", false, false, 3, [], 1, ~U[2026-09-03 14:00:22Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit af livet på gården er der godt gang i den alle vegne. Min søster og hendes kæreste er flyttet ind en uges tid for at hjælpe med byggeriet og mine forældre støder til - og vi har en vaskeægte arbejdsdag hvor der både bliver samlet hønsegård, malet hegn og bygget løs på overetagen. Mikkel og Rasmus er et kanon makkerpar og i kommer med når de prøver at løse troldtekt mysterier - det viser sig at være lidt af et puslespil. Men resultatet er FANTASTISK - det får i at se til slut! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Arbejdsdag med hele min familie! | Livet på gården Ep. 102", "X9r5hiSunVQ", 1288, false, "https://www.youtube.com/watch?v=X9r5hiSunVQ", "/downloads/shows/Livet på gården/Season 2026/s2026e090300 - Arbejdsdag med hele min familie! | Livet på gården Ep. 102.mkv", false, 3, ~U[2026-09-03 14:00:22Z]] 10:25:29.777 [debug] QUERY OK source="sources" db=0.2ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.778 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-10 14:00:09Z], 3] 10:25:29.779 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "6bde265f-a594-4128-8221-ae48da2b662b", "kg2u-aUyisg", false, 1227, false, "https://www.youtube.com/watch?v=kg2u-aUyisg", 101, "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", false, false, 3, [], 1, ~U[2026-09-10 14:00:09Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er jeg på noget af en mission når jeg besøger vildtplejer Michelle som er helt særlig. Hun er nemlig en af dem som kører rundt i dyreambulancen og henter tilskadekommende dyr når man ringer 1813 - og tager dem med hjem i pleje til de er klar til at komme ud i verden igen. Hun har inviteret mig hjem i hendes have for at høre om hendes arbejde og der får jeg mig altså noget af en overraskelse med både det ene og det andet. Hun har også arrangeret at vi skal sætte de fineste ællinger fri sammen og det er noget af en oplevelse!\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Jeg besøger en fuglehvisker! | Livet på gården Ep. 103", "kg2u-aUyisg", 1227, false, "https://www.youtube.com/watch?v=kg2u-aUyisg", "/downloads/shows/Livet på gården/Season 2026/s2026e091000 - Jeg besøger en fuglehvisker! | Livet på gården Ep. 103.mkv", false, 3, ~U[2026-09-10 14:00:09Z]] 10:25:29.780 [debug] QUERY OK source="sources" db=0.1ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.780 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-17 14:00:08Z], 3] 10:25:29.782 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "8dcd6599-468e-41a5-b7fd-f7a9de16015d", "bOCzjIQs9r0", false, 1322, false, "https://www.youtube.com/watch?v=bOCzjIQs9r0", 102, "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", false, false, 3, [], 1, ~U[2026-09-17 14:00:08Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I denne video er vi simpelthen kommet til storbyen fordi jeg skal på længe ventet drejekursus ved Tortus - the master af gigantiske ting. Jeg tager jer med og i kommer helt tæt på når Eric laver demo og jeg bagefter forsøger at dreje en flaske. Med absolut blandet succes - men heldigvis er Eric lige ved siden af og hjælper mig godt på vej. Vi kommer retur til gården og skal have flyttet vores høns og deres indhegning for aller første gang. Det er overraskende nemt og alle synes det er sjovt, særligt vores datter. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Drejekursus i København og flytning af høns | Livet på gården Ep. 104", "bOCzjIQs9r0", 1322, false, "https://www.youtube.com/watch?v=bOCzjIQs9r0", "/downloads/shows/Livet på gården/Season 2026/s2026e091700 - Drejekursus i København og flytning af høns | Livet på gården Ep. 104.mkv", false, 3, ~U[2026-09-17 14:00:08Z]] 10:25:29.782 [debug] QUERY OK source="sources" db=0.1ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.783 [debug] QUERY OK source="media_items" db=0.3ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-24 14:00:05Z], 3] 10:25:29.784 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "499d406e-059d-4eb8-a7c6-67cc68aa8def", "j38sPZsOlqk", false, 1721, false, "https://www.youtube.com/watch?v=j38sPZsOlqk", 103, "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", false, false, 3, [], 1, ~U[2026-09-24 14:00:05Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit sker der lidt af hvert. Vi er endelig sådan ægte kommet igang med overetagen igen, og Mikkel spartler på livet løs med min far som hjælp. Min søster er også på besøg og bliver sat til lidt af hvert - herhjemme står man ligesom ikke rigtigt stille som gæst, haha. Og så er jeg bare igang med kæmpe vaser i keramikken - og de aller første er netop kommet ud af glasurovnen.. Nogen med stor succes - andre knapt så stor. Og så har jeg mindre krise over at ting eksplodere i ovnen OGSÅ. \n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105", "j38sPZsOlqk", 1721, false, "https://www.youtube.com/watch?v=j38sPZsOlqk", "/downloads/shows/Livet på gården/Season 2026/s2026e092400 - Vi fuldspartler overetagen og jeg laver kæmpe vaser | Livet på gården Ep. 105.mkv", false, 3, ~U[2026-09-24 14:00:05Z]] 10:25:29.785 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.785 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-01 14:00:17Z], 3] 10:25:29.787 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "8b69516d-3d3e-462a-88b4-acccca1d3b6d", "_I53PIcgfQw", false, 1578, false, "https://www.youtube.com/watch?v=_I53PIcgfQw", 104, "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", false, false, 3, [], 1, ~U[2026-10-01 14:00:17Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er vi vidt omkring. Jeg starter ud med at tømme min keramikovn - der er både gode sager i den, men også fejl, og det må man sige jeg har været ramt af på det sidste.. Det store fuldspartle arbejde fortsætter på overetagen og jeg kommer i en slags lærer ved Mikkel som efterhånden er pænt hård til det. Han siger som altid alt muligt gøjl og han får tilbage af samme skuffe, haha. Der sker også noget jeg har glædet mig til i måneder - Nemlig at min nye keramikovn bliver leveret. DET er spændende! \n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106", "_I53PIcgfQw", 1578, false, "https://www.youtube.com/watch?v=_I53PIcgfQw", "/downloads/shows/Livet på gården/Season 2026/s2026e100100 - Mikkel lærer mig at spartle og jeg får ny keramikovn | Livet på gården Ep. 106.mkv", false, 3, ~U[2026-10-01 14:00:17Z]] 10:25:29.787 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 10:25:29.788 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-15 14:00:25Z], 3] 10:25:29.789 [debug] QUERY OK source="media_items" db=0.9ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["I dette afsnit er dagen endelig kommet hvor min søster starter hos mig og skal hjælpe mig med det ene og det andet - og vi starter ud med den helt store pakkestation efter keramiksalg. Felix er på besøg og ham og Mikkel hjælper med at samle mine nye keramikovn og så udvider de hønsegården så den bliver intet mindre end gigantisk. Julle overtager kameraet mens hun glasere kopper med sig selv og hvis man har tænkt: Hvordan går det egentlig med julle? SÅ får man besked her kan jeg sige jer. Vi får nærmest et TMI tag og jeg elsker det bare\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Min søsters første arbejdsdag og ny kæmpe hønsegård | Livet på gården Ep. 107", "c8903ef6-d249-45b4-86d7-6f8d352fe3fe", "DGyRdwOrTqY", false, 1565, false, "https://www.youtube.com/watch?v=DGyRdwOrTqY", 105, "/downloads/shows/Livet på gården/Season 2026/s2026e101500 - Min søsters første arbejdsdag og ny kæmpe hønsegård | Livet på gården Ep. 107.mkv", false, false, 3, [], 1, ~U[2026-10-15 14:00:25Z], ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], "I dette afsnit er dagen endelig kommet hvor min søster starter hos mig og skal hjælpe mig med det ene og det andet - og vi starter ud med den helt store pakkestation efter keramiksalg. Felix er på besøg og ham og Mikkel hjælper med at samle mine nye keramikovn og så udvider de hønsegården så den bliver intet mindre end gigantisk. Julle overtager kameraet mens hun glasere kopper med sig selv og hvis man har tænkt: Hvordan går det egentlig med julle? SÅ får man besked her kan jeg sige jer. Vi får nærmest et TMI tag og jeg elsker det bare\n\n------------------------------------------------------------------------------------------------------------\n\n► MINE SOCIALE MEDIER\nInstagram: @kristiinesloth\n\n-----------------------------------------------------------------------------------------------------------------\n\nBuisness mail: camilla@podads.dk", "Min søsters første arbejdsdag og ny kæmpe hønsegård | Livet på gården Ep. 107", "DGyRdwOrTqY", 1565, false, "https://www.youtube.com/watch?v=DGyRdwOrTqY", "/downloads/shows/Livet på gården/Season 2026/s2026e101500 - Min søsters første arbejdsdag og ny kæmpe hønsegård | Livet på gården Ep. 107.mkv", false, 3, ~U[2026-10-15 14:00:25Z]] 10:25:29.790 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z], 3] 10:25:29.791 [debug] QUERY OK source="media_items" db=0.6ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 10:25:29.791 [debug] QUERY OK source="media_items" db=0.5ms idle=3.7ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 10:25:29.792 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 10:25:29.793 [debug] QUERY OK source="tasks" db=0.1ms idle=2.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [6585, 3, ~U[2026-10-17 08:25:29Z], ~U[2026-10-17 08:25:29Z]] 10:25:29.794 [info] {"args":{"id":3},"id":6579,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":105854489,"event":"job:stop","queue_time":437313,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:25:30.867 [info] {"source":"oban","duration":831,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:25:36.845 [info] GET /sitemap.xml 10:25:36.846 [debug] QUERY OK source="settings" db=0.6ms idle=1532.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:25:36.846 [debug] QUERY OK source="settings" db=0.2ms idle=1533.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:25:36.846 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:25:36.847 [error] #PID<0.555549.0> running PinchflatWeb.Endpoint (connection #PID<0.555548.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.555548.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 39782}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bde9e8fe894603-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.555549.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bde9e8fe894603-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9DoVEHhdM3N_cABoWj"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.555548.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 39782}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bde9e8fe894603-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.555548.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 39782}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bde9e8fe894603-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.555549.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 10:26:00.868 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:26:00.960 [info] {"source":"oban","duration":151,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:26:30.869 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:27:00.870 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:27:00.961 [info] {"source":"oban","duration":168,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:27:30.871 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:28:00.872 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:28:00.962 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:28:30.873 [info] {"source":"oban","duration":762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:29:00.874 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:29:00.963 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:29:30.875 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:30:00.876 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:30:00.964 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:30:30.877 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:31:00.878 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:31:00.965 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:31:30.879 [info] {"source":"oban","duration":795,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:32:00.880 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:32:00.966 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:32:30.881 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:33:00.882 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:33:00.967 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:33:30.883 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:34:00.884 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:34:00.968 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:34:30.885 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:35:00.886 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:35:00.969 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:35:30.887 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:36:00.888 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:36:00.970 [info] {"source":"oban","duration":156,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:36:30.889 [info] {"source":"oban","duration":579,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:37:00.890 [info] {"source":"oban","duration":618,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:37:00.971 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:37:30.891 [info] {"source":"oban","duration":560,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:38:00.892 [info] {"source":"oban","duration":506,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:38:00.972 [info] {"source":"oban","duration":159,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:38:30.893 [info] {"source":"oban","duration":472,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:39:00.894 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:39:00.973 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:39:30.895 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:40:00.896 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:40:00.974 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:40:30.897 [info] {"source":"oban","duration":745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:41:00.898 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:41:00.975 [info] {"source":"oban","duration":168,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:41:30.899 [info] {"source":"oban","duration":754,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:42:00.900 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:42:00.976 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:42:30.901 [info] {"source":"oban","duration":673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:43:00.902 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:43:00.977 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:43:30.903 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:44:00.904 [info] {"source":"oban","duration":733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:44:00.978 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:44:30.905 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:45:00.906 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:45:00.979 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:45:30.907 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:46:00.908 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:46:00.980 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:46:30.909 [info] {"source":"oban","duration":767,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:47:00.910 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:47:00.981 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:47:30.911 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:48:00.912 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:48:00.982 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:48:30.913 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:49:00.914 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:49:00.983 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:49:30.915 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:50:00.916 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:50:00.984 [info] {"source":"oban","duration":246,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:50:30.917 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:51:00.918 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:51:00.985 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:51:30.919 [info] {"source":"oban","duration":620,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:52:00.944 [info] {"source":"oban","duration":5176,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:52:00.996 [info] {"source":"oban","duration":2902,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:52:30.949 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:53:00.950 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:53:00.997 [info] {"source":"oban","duration":162,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:53:30.950 [info] {"source":"oban","duration":482,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:54:00.952 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:54:00.998 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:54:30.953 [info] {"source":"oban","duration":797,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:55:00.955 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:55:00.999 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:55:30.956 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:56:00.957 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:56:01.000 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:56:30.958 [info] {"source":"oban","duration":817,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:57:00.001 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:57:00.959 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:57:30.960 [info] {"source":"oban","duration":738,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:58:00.002 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:58:00.961 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:58:30.962 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:59:00.003 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:59:00.963 [info] {"source":"oban","duration":727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:59:30.964 [info] {"source":"oban","duration":775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:00:00.004 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:00:00.965 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:00:30.966 [info] {"source":"oban","duration":746,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:01:00.006 [info] {"source":"oban","duration":582,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:01:00.967 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:01:30.968 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:02:00.006 [info] {"source":"oban","duration":207,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:02:00.969 [info] {"source":"oban","duration":1096,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:02:30.971 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:03:00.007 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:03:00.972 [info] {"source":"oban","duration":1022,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:03:30.974 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:04:00.008 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:04:00.975 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:04:30.976 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:05:00.009 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:05:00.977 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:05:30.978 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:06:00.010 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:06:00.979 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:06:30.980 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:07:00.011 [info] {"source":"oban","duration":384,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:07:00.981 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:07:30.982 [info] {"source":"oban","duration":637,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:08:00.012 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:08:00.983 [info] {"source":"oban","duration":746,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:08:30.984 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:09:00.013 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:09:00.985 [info] {"source":"oban","duration":569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:09:30.986 [info] {"source":"oban","duration":548,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:10:00.014 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:10:00.987 [info] {"source":"oban","duration":504,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:10:30.988 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:11:00.015 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:11:00.989 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:11:30.990 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:12:00.017 [info] {"source":"oban","duration":530,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:12:00.991 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:12:30.992 [info] {"source":"oban","duration":759,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:13:00.018 [info] {"source":"oban","duration":380,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:13:00.993 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:13:30.994 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:14:00.018 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:14:00.995 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:14:30.996 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:15:00.019 [info] {"source":"oban","duration":338,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:15:00.997 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:15:30.998 [info] {"source":"oban","duration":737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:16:00.021 [info] {"source":"oban","duration":428,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:16:00.999 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:16:31.000 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:17:00.021 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:17:01.001 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:17:31.002 [info] {"source":"oban","duration":726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:18:00.023 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:18:01.003 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:18:31.004 [info] {"source":"oban","duration":756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:19:00.024 [info] {"source":"oban","duration":875,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:19:01.005 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:19:31.006 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:20:00.026 [info] {"source":"oban","duration":1082,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:20:01.007 [info] {"source":"oban","duration":654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:20:31.008 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:21:00.028 [info] {"source":"oban","duration":754,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:21:01.009 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:21:31.010 [info] {"source":"oban","duration":748,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:22:00.029 [info] {"source":"oban","duration":268,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:22:01.011 [info] {"source":"oban","duration":612,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:22:31.012 [info] {"source":"oban","duration":627,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:23:00.033 [info] {"source":"oban","duration":2501,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:23:01.013 [info] {"source":"oban","duration":628,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:23:31.014 [info] {"source":"oban","duration":613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:24:00.034 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:24:01.015 [info] {"source":"oban","duration":791,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:24:31.016 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:25:00.035 [info] {"source":"oban","duration":211,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:25:01.017 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:25:31.018 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:26:00.036 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:26:01.019 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:26:31.020 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:27:00.038 [info] {"source":"oban","duration":914,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:27:01.021 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:27:31.022 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:28:00.039 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:28:01.023 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:28:31.024 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:29:00.040 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:29:01.025 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:29:31.026 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:30:00.041 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:30:01.027 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:30:31.028 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:31:00.042 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:31:01.029 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:31:31.030 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:32:00.043 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:32:01.031 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:32:31.032 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:33:00.044 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:33:01.033 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:33:31.034 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:34:00.045 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:34:01.035 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:34:31.036 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:35:00.046 [info] {"source":"oban","duration":245,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:35:01.037 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:35:31.038 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:36:00.047 [info] {"source":"oban","duration":292,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:36:01.039 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:36:31.040 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:37:00.048 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:37:01.041 [info] {"source":"oban","duration":737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:37:31.042 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:38:00.049 [info] {"source":"oban","duration":339,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:38:01.043 [info] {"source":"oban","duration":621,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:38:31.044 [info] {"source":"oban","duration":596,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:39:00.051 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:39:01.045 [info] {"source":"oban","duration":553,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:39:31.046 [info] {"source":"oban","duration":798,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:40:00.052 [info] {"source":"oban","duration":258,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:40:01.048 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:40:31.049 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:41:00.053 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:41:01.050 [info] {"source":"oban","duration":1063,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:41:31.052 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:42:00.054 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:42:01.053 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:42:31.054 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:43:00.055 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:43:01.055 [info] {"source":"oban","duration":777,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:43:31.056 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:44:00.056 [info] {"source":"oban","duration":267,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:44:01.057 [info] {"source":"oban","duration":761,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:44:31.058 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:45:00.057 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:45:01.059 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:45:31.060 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:46:00.058 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:46:01.061 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:46:08.163 [info] GET /sitemap.xml 11:46:08.163 [debug] QUERY OK source="settings" db=0.1ms idle=1776.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:46:08.164 [debug] QUERY OK source="settings" db=0.3ms idle=1777.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:46:08.164 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 11:46:08.164 [error] #PID<0.555994.0> running PinchflatWeb.Endpoint (connection #PID<0.555993.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.555993.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 48856}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4be5fdd0c50b6ed-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.555994.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4be5fdd0c50b6ed-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9IBjIF4LlLqUMAM02i"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.555993.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 48856}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4be5fdd0c50b6ed-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.555993.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 48856}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4be5fdd0c50b6ed-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.555994.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 11:46:31.062 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:47:00.059 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:47:01.063 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:47:31.064 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:48:00.060 [info] {"source":"oban","duration":241,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:48:01.065 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:48:31.066 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:49:00.061 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:49:01.067 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:49:31.068 [info] {"source":"oban","duration":658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:50:00.062 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:50:01.069 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:50:31.070 [info] {"source":"oban","duration":764,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:51:00.064 [info] {"source":"oban","duration":320,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:51:01.071 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:51:31.072 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:52:00.064 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:52:01.073 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:52:31.074 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:53:00.066 [info] {"source":"oban","duration":333,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:53:01.075 [info] {"source":"oban","duration":775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:53:31.076 [info] {"source":"oban","duration":784,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:54:00.066 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:54:01.077 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:54:31.078 [info] {"source":"oban","duration":741,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:55:00.067 [info] {"source":"oban","duration":313,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:55:01.079 [info] {"source":"oban","duration":493,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:55:31.080 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:56:00.068 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:56:01.081 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:56:31.082 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:57:00.069 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:57:01.083 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:57:31.084 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:58:00.070 [info] {"source":"oban","duration":334,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:58:01.085 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:58:31.086 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:59:00.072 [info] {"source":"oban","duration":373,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:59:01.087 [info] {"source":"oban","duration":783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:59:31.088 [info] {"source":"oban","duration":748,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:00:00.072 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:00:01.089 [info] {"source":"oban","duration":1242,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:00:31.091 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:01:00.073 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:01:01.092 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:01:31.093 [info] {"source":"oban","duration":739,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:02:00.074 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:02:01.094 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:02:31.095 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:03:00.075 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:03:01.096 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:03:31.097 [info] {"source":"oban","duration":754,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:04:00.076 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:04:01.098 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:04:31.099 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:05:00.077 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:05:01.100 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:05:31.101 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:06:00.078 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:06:01.102 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:06:31.103 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:07:00.079 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:07:01.104 [info] {"source":"oban","duration":827,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:07:31.105 [info] {"source":"oban","duration":795,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:08:00.080 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:08:01.106 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:08:31.107 [info] {"source":"oban","duration":771,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:09:00.081 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:09:01.108 [info] {"source":"oban","duration":770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:09:31.109 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:10:00.082 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:10:01.110 [info] {"source":"oban","duration":608,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:10:31.111 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:11:00.083 [info] {"source":"oban","duration":160,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:11:01.112 [info] {"source":"oban","duration":583,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:11:31.113 [info] {"source":"oban","duration":556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:12:00.084 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:12:01.114 [info] {"source":"oban","duration":782,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:12:31.115 [info] {"source":"oban","duration":982,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:13:00.085 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:13:01.117 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:13:31.118 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:14:00.086 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:14:01.119 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:14:31.120 [info] {"source":"oban","duration":823,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:15:00.087 [info] {"source":"oban","duration":246,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:15:01.121 [info] {"source":"oban","duration":796,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:15:31.122 [info] {"source":"oban","duration":792,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:16:00.088 [info] {"source":"oban","duration":362,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:16:01.123 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:16:31.124 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:17:00.089 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:17:01.125 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:17:31.126 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:18:00.090 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:18:01.127 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:18:31.128 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:19:00.091 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:19:01.129 [info] {"source":"oban","duration":769,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:19:31.130 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:20:00.092 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:20:01.131 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:20:31.132 [info] {"source":"oban","duration":701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:21:00.093 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:21:01.133 [info] {"source":"oban","duration":825,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:21:31.135 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:22:00.094 [info] {"source":"oban","duration":411,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:22:01.136 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:22:31.137 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:23:00.095 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:23:01.138 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:23:31.139 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:24:00.096 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:24:01.140 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:24:31.141 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:25:00.097 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:25:01.142 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:25:31.143 [info] {"source":"oban","duration":776,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:26:00.099 [info] {"source":"oban","duration":960,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[6586]} 12:26:00.106 [info] {"args":{},"id":6586,"meta":{"cron":true,"cron_expr":"26 10 * * *","cron_tz":"Etc/UTC"},"system_time":1792232760106334543,"max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","event":"job:start","attempt":1,"tags":["local_data"]} 12:26:00.106 [info] Updating yt-dlp 12:26:00.106 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update 12:26:01.144 [info] {"source":"oban","duration":749,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:26:01.751 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update exited: 0 with: Latest version: stable@2026.08.19 from yt-dlp/yt-dlp yt-dlp is up to date (stable@2026.08.19 from yt-dlp/yt-dlp) 12:26:01.752 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version 12:26:02.963 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version exited: 0 with: 2026.08.19 12:26:02.963 [debug] QUERY OK source="settings" db=0.2ms idle=1537.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:02.964 [info] {"args":{},"id":6586,"meta":{"cron":true,"cron_expr":"26 10 * * *","cron_tz":"Etc/UTC"},"state":"success","max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","duration":2857449,"event":"job:stop","queue_time":105533,"attempt":1,"tags":["local_data"]} 12:26:31.145 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:27:00.100 [info] {"source":"oban","duration":212,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:27:01.146 [info] {"source":"oban","duration":516,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:27:31.147 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:28:00.101 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:28:01.148 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:28:12.313 [info] GET /wp-json/wp/v2/users 12:28:12.314 [debug] QUERY OK source="settings" db=0.4ms idle=1888.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:12.315 [debug] QUERY OK source="settings" db=0.3ms queue=0.2ms idle=1889.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:12.315 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:28:12.316 [error] #PID<0.556228.0> running PinchflatWeb.Endpoint (connection #PID<0.556227.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-json/wp/v2/users ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-json/wp/v2/users (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wp/v2/users", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47520}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "application/json, text/plain, */*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "5.103.75.115", "cf-ipcountry" => "DK", "cf-ray" => "a4be9d7eeb5f3355-CPH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "dk-domain-scan/1.0 (+https://github.com/)", "x-forwarded-for" => "5.103.75.115, 104.22.69.20", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.69.20" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556228.0>, params: %{}, path_info: ["wp-json", "wp", "v2", "users"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "application/json, text/plain, */*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "5.103.75.115"}, {"cf-ipcountry", "DK"}, {"cf-ray", "a4be9d7eeb5f3355-CPH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "dk-domain-scan/1.0 (+https://github.com/)"}, {"x-forwarded-for", "5.103.75.115, 104.22.69.20"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.69.20"} ], request_path: "/wp-json/wp/v2/users", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KUeUf_2GqbLAAM1CC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wp/v2/users", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47520}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "application/json, text/plain, */*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "5.103.75.115", "cf-ipcountry" => "DK", "cf-ray" => "a4be9d7eeb5f3355-CPH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "dk-domain-scan/1.0 (+https://github.com/)", "x-forwarded-for" => "5.103.75.115, 104.22.69.20", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.69.20" }, 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 /wp-json/wp/v2/users (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wp/v2/users", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47520}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "application/json, text/plain, */*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "5.103.75.115", "cf-ipcountry" => "DK", "cf-ray" => "a4be9d7eeb5f3355-CPH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "dk-domain-scan/1.0 (+https://github.com/)", "x-forwarded-for" => "5.103.75.115, 104.22.69.20", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.69.20" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556228.0>, params: %{}, path_info: ["wp-json", "wp", "v2", "users"], path_params: %{}, port: 80, private: %{ Pinchfl (truncated) 12:28:12.362 [info] GET /wp-json/wp/v2/users 12:28:12.363 [debug] QUERY OK source="settings" db=0.1ms idle=1937.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:12.363 [debug] QUERY OK source="settings" db=0.1ms idle=1154.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:12.363 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:28:12.364 [error] #PID<0.556229.0> running PinchflatWeb.Endpoint (connection #PID<0.556227.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /wp-json/wp/v2/users ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-json/wp/v2/users (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wp/v2/users", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47520}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "application/json, text/plain, */*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "5.103.75.115", "cf-ipcountry" => "DK", "cf-ray" => "a4be9d7f7c623355-CPH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "dk-domain-scan/1.0 (+https://github.com/)", "x-forwarded-for" => "5.103.75.115, 104.22.69.20", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.69.20" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556229.0>, params: %{}, path_info: ["wp-json", "wp", "v2", "users"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "application/json, text/plain, */*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "5.103.75.115"}, {"cf-ipcountry", "DK"}, {"cf-ray", "a4be9d7f7c623355-CPH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "dk-domain-scan/1.0 (+https://github.com/)"}, {"x-forwarded-for", "5.103.75.115, 104.22.69.20"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.69.20"} ], request_path: "/wp-json/wp/v2/users", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KUegPX6lOq3sAM1Ci"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wp/v2/users", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47520}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "application/json, text/plain, */*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "5.103.75.115", "cf-ipcountry" => "DK", "cf-ray" => "a4be9d7f7c623355-CPH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "dk-domain-scan/1.0 (+https://github.com/)", "x-forwarded-for" => "5.103.75.115, 104.22.69.20", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.69.20" }, 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 /wp-json/wp/v2/users (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wp/v2/users", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47520}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "application/json, text/plain, */*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "5.103.75.115", "cf-ipcountry" => "DK", "cf-ray" => "a4be9d7f7c623355-CPH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "dk-domain-scan/1.0 (+https://github.com/)", "x-forwarded-for" => "5.103.75.115, 104.22.69.20", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.69.20" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556229.0>, params: %{}, path_info: ["wp-json", "wp", "v2", "users"], path_params: %{}, port: 80, private: %{ Pinchfl (truncated) 12:28:14.174 [info] GET /.well-known/ucp 12:28:14.174 [debug] QUERY OK source="settings" db=0.1ms idle=963.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:14.174 [debug] QUERY OK source="settings" db=0.1ms idle=749.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:14.174 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:28:14.175 [error] #PID<0.556230.0> running PinchflatWeb.Endpoint (connection #PID<0.556227.0>, stream id 3) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /.well-known/ucp ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.well-known/ucp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47520}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4be9d89ca22d0fd-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556230.0>, params: %{}, path_info: [".well-known", "ucp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "131.222.130.244"}, {"cf-ipcountry", "TR"}, {"cf-ray", "a4be9d89ca22d0fd-SOF"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)"}, {"x-forwarded-for", "131.222.130.244, 162.158.210.222"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.210.222"} ], request_path: "/.well-known/ucp", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KUlQCq_OmzO0AM1DC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47520}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4be9d89ca22d0fd-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, 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 /.well-known/ucp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 47520}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4be9d89ca22d0fd-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556230.0>, params: %{}, path_info: [".well-known", "ucp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch (truncated) 12:28:31.149 [info] {"source":"oban","duration":1115,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:29:00.102 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:29:01.151 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:29:13.203 [info] GET / 12:29:13.203 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 12:29:13.204 [debug] QUERY OK source="settings" db=0.1ms idle=1778.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:13.204 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1778.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 12:29:13.204 [debug] QUERY OK source="sources" db=0.0ms idle=1779.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 12:29:13.213 [debug] QUERY OK source="media_items" db=8.0ms idle=921.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:13.213 [debug] QUERY OK source="media_items" db=0.4ms idle=787.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:13.214 [debug] QUERY OK source="settings" db=0.1ms idle=9.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:13.214 [debug] QUERY OK source="settings" db=0.1ms idle=9.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:13.225 [debug] QUERY OK source="settings" db=0.1ms idle=20.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:13.226 [debug] QUERY OK source="tasks" db=0.2ms idle=13.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 12:29:13.230 [debug] QUERY OK source="media_items" db=0.4ms idle=16.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:13.231 [debug] QUERY OK source="media_items" db=0.7ms idle=16.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:13.233 [debug] QUERY OK source="sources" db=1.1ms idle=17.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 12:29:13.240 [debug] QUERY OK source="media_items" db=3.9ms idle=10.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 12:29:13.242 [debug] QUERY OK source="media_items" db=2.0ms idle=13.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:13.243 [info] Sent 200 in 39ms 12:29:13.907 [info] GET /.well-known/ucp 12:29:13.908 [debug] QUERY OK source="settings" db=0.2ms idle=675.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:13.908 [debug] QUERY OK source="settings" db=0.6ms idle=674.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:13.909 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:13.910 [error] #PID<0.556239.0> running PinchflatWeb.Endpoint (connection #PID<0.556237.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /.well-known/ucp ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.well-known/ucp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556237.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 40352}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4be9effffbcd0ca-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556239.0>, params: %{}, path_info: [".well-known", "ucp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "131.222.130.244"}, {"cf-ipcountry", "TR"}, {"cf-ray", "a4be9effffbcd0ca-SOF"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)"}, {"x-forwarded-for", "131.222.130.244, 162.158.210.222"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.210.222"} ], request_path: "/.well-known/ucp", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KYDxnuH6N_7AAM1Hi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556237.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 40352}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4be9effffbcd0ca-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, 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 /.well-known/ucp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556237.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 40352}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4be9effffbcd0ca-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556239.0>, params: %{}, path_info: [".well-known", "ucp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch (truncated) 12:29:26.884 [info] GET / 12:29:26.884 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 12:29:26.884 [debug] QUERY OK source="settings" db=0.1ms idle=1458.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:26.885 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1459.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 12:29:26.885 [debug] QUERY OK source="sources" db=0.1ms idle=586.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 12:29:26.886 [debug] QUERY OK source="media_items" db=0.7ms idle=459.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:26.886 [debug] QUERY OK source="media_items" db=0.3ms idle=460.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:26.887 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:26.887 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:26.887 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:26.888 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 12:29:26.889 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:26.890 [debug] QUERY OK source="media_items" db=0.4ms idle=2.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:26.890 [debug] QUERY OK source="sources" db=0.2ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 12:29:26.897 [debug] QUERY OK source="media_items" db=3.7ms idle=6.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 12:29:26.899 [debug] QUERY OK source="media_items" db=1.7ms idle=9.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:26.900 [info] Sent 200 in 16ms 12:29:31.008 [info] GET / 12:29:31.008 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 12:29:31.008 [debug] QUERY OK source="settings" db=0.2ms idle=706.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:31.009 [debug] QUERY OK source="media_profiles" db=0.1ms idle=583.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 12:29:31.009 [debug] QUERY OK source="sources" db=0.1ms idle=583.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 12:29:31.012 [debug] QUERY OK source="media_items" db=2.7ms idle=583.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:31.013 [debug] QUERY OK source="media_items" db=0.8ms idle=586.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:31.013 [debug] QUERY OK source="settings" db=0.1ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:31.014 [debug] QUERY OK source="settings" db=0.1ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:31.014 [debug] QUERY OK source="settings" db=0.1ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:31.015 [debug] QUERY OK source="tasks" db=0.2ms idle=3.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 12:29:31.016 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:31.017 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:31.018 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 12:29:31.036 [debug] QUERY OK source="media_items" db=2.0ms idle=19.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 12:29:31.041 [debug] QUERY OK source="media_items" db=4.4ms idle=21.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:31.043 [info] Sent 200 in 35ms 12:29:31.208 [info] {"source":"oban","duration":53895,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:29:45.801 [info] GET / 12:29:45.801 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 12:29:45.802 [debug] QUERY OK source="settings" db=0.2ms idle=1376.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:45.802 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1376.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 12:29:45.802 [debug] QUERY OK source="sources" db=0.0ms idle=1377.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 12:29:45.803 [debug] QUERY OK source="media_items" db=0.5ms idle=1377.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:45.804 [debug] QUERY OK source="media_items" db=0.2ms idle=483.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:45.804 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:45.804 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:45.805 [debug] QUERY OK source="settings" db=0.3ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:45.806 [debug] QUERY OK source="tasks" db=0.2ms idle=2.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 12:29:45.807 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:45.807 [debug] QUERY OK source="media_items" db=0.3ms idle=3.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:45.808 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 12:29:45.841 [debug] QUERY OK source="media_items" db=29.7ms idle=5.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 12:29:45.843 [debug] QUERY OK source="media_items" db=1.7ms idle=34.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:45.843 [info] Sent 200 in 42ms 12:29:47.021 [info] GET / 12:29:47.021 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 12:29:47.022 [debug] QUERY OK source="settings" db=0.1ms idle=1214.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.022 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1214.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 12:29:47.023 [debug] QUERY OK source="sources" db=0.0ms idle=1182.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 12:29:47.024 [debug] QUERY OK source="media_items" db=0.8ms idle=1180.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:47.024 [debug] QUERY OK source="media_items" db=0.2ms idle=702.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:47.024 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.025 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.025 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.026 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 12:29:47.027 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:29:47.028 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:47.028 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 12:29:47.032 [debug] QUERY OK source="media_items" db=1.2ms idle=5.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 12:29:47.034 [debug] QUERY OK source="media_items" db=1.7ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 12:29:47.035 [info] Sent 200 in 14ms 12:29:47.342 [info] GET /sources 12:29:47.342 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 12:29:47.352 [debug] QUERY OK source="settings" db=0.1ms idle=324.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.353 [debug] QUERY OK source="settings" db=0.1ms idle=324.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.353 [debug] QUERY OK source="settings" db=0.0ms idle=320.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.354 [debug] QUERY OK source="settings" db=0.0ms idle=319.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.354 [debug] QUERY OK source="settings" db=0.0ms idle=31.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.365 [debug] QUERY OK source="sources" db=10.6ms idle=2.0ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 12:29:47.371 [debug] QUERY OK source="sources" db=5.8ms idle=12.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 12:29:47.375 [info] Sent 200 in 32ms 12:29:47.592 [info] GET /media_profiles 12:29:47.592 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 12:29:47.592 [debug] QUERY OK source="media_profiles" db=0.2ms idle=238.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", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 12:29:47.593 [debug] QUERY OK source="settings" db=0.0ms idle=238.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.593 [debug] QUERY OK source="settings" db=0.1ms idle=238.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.593 [debug] QUERY OK source="settings" db=0.1ms idle=228.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.594 [info] Sent 200 in 2ms 12:29:47.786 [info] GET /settings 12:29:47.786 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 12:29:47.787 [debug] QUERY OK source="settings" db=0.2ms idle=415.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.787 [debug] QUERY OK source="settings" db=0.1ms idle=194.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.787 [debug] QUERY OK source="settings" db=0.0ms idle=194.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.788 [debug] QUERY OK source="settings" db=0.1ms idle=194.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.789 [info] Sent 200 in 3ms 12:29:47.967 [info] GET /app_info 12:29:47.967 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 12:29:47.968 [debug] QUERY OK source="settings" db=0.2ms idle=374.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.968 [debug] QUERY OK source="settings" db=0.1ms idle=181.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.969 [debug] QUERY OK source="settings" db=0.0ms idle=181.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.969 [debug] QUERY OK source="settings" db=0.0ms idle=181.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.969 [debug] QUERY OK source="settings" db=0.1ms idle=181.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:47.970 [info] Sent 200 in 3ms 12:29:48.161 [info] GET /sources/3/media/256408 12:29:48.161 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256408", "source_id" => "3"} Pipelines: [:browser] 12:29:48.161 [debug] QUERY OK source="media_items" db=0.2ms idle=193.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" = ?) [256408] 12:29:48.162 [debug] QUERY OK source="tasks" db=0.1ms idle=193.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" [256408] 12:29:48.162 [debug] QUERY OK source="sources" db=0.2ms idle=193.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:48.163 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=193.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6569, 6584] 12:29:48.163 [debug] QUERY OK source="settings" db=0.2ms idle=193.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.164 [debug] QUERY OK source="settings" db=0.3ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.165 [debug] QUERY OK source="settings" db=0.5ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.165 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:48.168 [info] Sent 200 in 6ms 12:29:48.342 [info] GET /sources/3 12:29:48.342 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 12:29:48.342 [debug] QUERY OK source="sources" db=0.2ms idle=178.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:48.343 [debug] QUERY OK source="media_profiles" db=0.1ms idle=178.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:48.344 [debug] QUERY OK source="tasks" db=1.3ms idle=178.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 12:29:48.345 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=178.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6585] 12:29:48.345 [debug] QUERY OK source="settings" db=0.1ms idle=21.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.345 [debug] QUERY OK source="settings" db=0.0ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.346 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.347 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:48.349 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=2.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")))) [3] 12:29:48.350 [debug] QUERY OK source="media_items" db=1.5ms idle=3.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [3, 10, 0] 12:29:48.351 [debug] QUERY OK source="sources" db=0.1ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:48.351 [debug] QUERY OK source="media_items" db=0.1ms idle=5.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 12:29:48.352 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 ? [3, 10, 0] 12:29:48.352 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:48.353 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [3] 12:29:48.354 [debug] QUERY OK source="media_items" db=0.8ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 12:29:48.356 [info] Sent 200 in 14ms 12:29:48.511 [info] GET /sources/5/media/256067 12:29:48.511 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256067", "source_id" => "5"} Pipelines: [:browser] 12:29:48.512 [debug] QUERY OK source="media_items" db=0.2ms idle=160.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" = ?) [256067] 12:29:48.512 [debug] QUERY OK source="tasks" db=0.1ms idle=160.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" [256067] 12:29:48.513 [debug] QUERY OK source="sources" db=0.2ms idle=159.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:48.513 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=159.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6565, 6583] 12:29:48.513 [debug] QUERY OK source="settings" db=0.1ms idle=159.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.514 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.514 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.515 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:48.517 [info] Sent 200 in 6ms 12:29:48.673 [info] GET /sources/5 12:29:48.674 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 12:29:48.674 [debug] QUERY OK source="sources" db=0.3ms idle=160.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:48.675 [debug] QUERY OK source="media_profiles" db=0.1ms idle=161.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:48.689 [debug] QUERY OK source="tasks" db=13.8ms idle=161.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [5, "executing", "available", "scheduled", "retryable"] 12:29:48.689 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=174.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6577] 12:29:48.690 [debug] QUERY OK source="settings" db=0.1ms idle=174.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.690 [debug] QUERY OK source="settings" db=0.2ms idle=15.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.691 [debug] QUERY OK source="settings" db=0.1ms idle=15.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.692 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:48.694 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=3.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [5] 12:29:48.697 [debug] QUERY OK source="media_items" db=3.0ms idle=4.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 12:29:48.698 [debug] QUERY OK source="sources" db=0.1ms idle=7.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:48.698 [debug] QUERY OK source="media_items" db=0.2ms idle=7.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 12:29:48.699 [debug] QUERY OK source="media_items" db=0.9ms idle=6.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 12:29:48.700 [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" = ?) [5] 12:29:48.702 [debug] QUERY OK source="media_items" db=1.3ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [5] 12:29:48.705 [debug] QUERY OK source="media_items" db=2.4ms idle=4.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 12:29:48.707 [info] Sent 200 in 33ms 12:29:48.867 [info] GET /sources/5/media/253343 12:29:48.867 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "253343", "source_id" => "5"} Pipelines: [:browser] 12:29:48.868 [debug] QUERY OK source="media_items" db=0.2ms idle=169.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" = ?) [253343] 12:29:48.868 [debug] QUERY OK source="tasks" db=0.1ms idle=168.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" [253343] 12:29:48.868 [debug] QUERY OK source="sources" db=0.2ms idle=167.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:48.869 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=166.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6523, 6538] 12:29:48.870 [debug] QUERY OK source="settings" db=0.1ms idle=164.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.870 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.871 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:48.871 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:48.874 [info] Sent 200 in 6ms 12:29:49.057 [info] GET /sources/5/media/252167 12:29:49.057 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "252167", "source_id" => "5"} Pipelines: [:browser] 12:29:49.058 [debug] QUERY OK source="media_items" db=0.2ms idle=188.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [252167] 12:29:49.059 [debug] QUERY OK source="tasks" db=0.5ms idle=188.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" [252167] 12:29:49.059 [debug] QUERY OK source="sources" db=0.7ms idle=188.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:49.060 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=189.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6503, 6520] 12:29:49.061 [debug] QUERY OK source="settings" db=0.2ms idle=189.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.061 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.062 [debug] QUERY OK source="settings" db=0.2ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.062 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:49.065 [info] Sent 200 in 7ms 12:29:49.229 [info] GET /sources/5/media/251079 12:29:49.229 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "251079", "source_id" => "5"} Pipelines: [:browser] 12:29:49.230 [debug] QUERY OK source="media_items" db=0.4ms idle=169.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" = ?) [251079] 12:29:49.231 [debug] QUERY OK source="tasks" db=0.6ms idle=169.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" [251079] 12:29:49.231 [debug] QUERY OK source="sources" db=0.7ms idle=169.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:49.265 [debug] QUERY OK source="oban_jobs" db=33.5ms idle=170.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6485, 6500] 12:29:49.266 [debug] QUERY OK source="settings" db=0.1ms idle=203.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.266 [debug] QUERY OK source="settings" db=0.0ms idle=35.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.267 [debug] QUERY OK source="settings" db=0.0ms idle=35.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.267 [debug] QUERY OK source="media_profiles" db=0.1ms idle=35.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:49.270 [info] Sent 200 in 40ms 12:29:49.460 [info] GET /media_profiles/1/edit 12:29:49.461 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 12:29:49.462 [debug] QUERY OK source="media_profiles" db=0.3ms idle=195.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:49.465 [debug] QUERY OK source="settings" db=2.2ms idle=196.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.465 [debug] QUERY OK source="settings" db=0.0ms idle=198.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.466 [debug] QUERY OK source="settings" db=0.1ms idle=198.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.473 [info] Sent 200 in 13ms 12:29:49.612 [info] GET /media_profiles/new 12:29:49.612 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{} Pipelines: [:browser] 12:29:49.613 [debug] QUERY OK source="settings" db=0.1ms idle=287.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.614 [debug] QUERY OK source="settings" db=0.3ms idle=151.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.615 [debug] QUERY OK source="settings" db=0.3ms idle=148.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.615 [debug] QUERY OK source="settings" db=0.1ms idle=149.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.616 [debug] QUERY OK source="settings" db=0.1ms idle=150.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.618 [info] Sent 200 in 5ms 12:29:49.753 [info] GET /media_profiles/1 12:29:49.753 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 12:29:49.754 [debug] QUERY OK source="media_profiles" db=0.2ms idle=141.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:49.755 [debug] QUERY OK source="sources" db=0.2ms idle=140.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 12:29:49.755 [debug] QUERY OK source="settings" db=0.1ms idle=140.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.756 [debug] QUERY OK source="settings" db=0.1ms idle=139.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.756 [debug] QUERY OK source="settings" db=0.1ms idle=139.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.768 [info] Sent 200 in 14ms 12:29:49.894 [info] GET /media_profiles/1/ 12:29:49.894 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 12:29:49.895 [debug] QUERY OK source="media_profiles" db=0.3ms idle=140.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:49.895 [debug] QUERY OK source="sources" db=0.3ms idle=140.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 12:29:49.896 [debug] QUERY OK source="settings" db=0.1ms idle=140.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.896 [debug] QUERY OK source="settings" db=0.1ms idle=140.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.897 [debug] QUERY OK source="settings" db=0.1ms idle=140.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:49.898 [info] Sent 200 in 4ms 12:29:50.024 [info] GET /sources/8/edit 12:29:50.024 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "8"} Pipelines: [:browser] 12:29:50.024 [debug] QUERY OK source="sources" db=0.2ms idle=129.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:50.025 [debug] QUERY OK source="media_profiles" db=0.1ms idle=129.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:29:50.026 [debug] QUERY OK source="settings" db=0.1ms idle=129.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.026 [debug] QUERY OK source="settings" db=0.1ms queue=0.2ms idle=129.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.027 [debug] QUERY OK source="settings" db=0.1ms idle=129.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.051 [info] Sent 200 in 26ms 12:29:50.171 [info] GET /sources/new 12:29:50.171 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 12:29:50.172 [debug] QUERY OK source="media_profiles" db=0.2ms idle=146.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:29:50.172 [debug] QUERY OK source="settings" db=0.1ms idle=146.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.172 [debug] QUERY OK source="settings" db=0.0ms idle=146.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.173 [debug] QUERY OK source="settings" db=0.1ms idle=145.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.173 [debug] QUERY OK source="settings" db=0.1ms idle=145.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.174 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.177 [info] Sent 200 in 6ms 12:29:50.298 [info] GET /sources/11 12:29:50.299 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "11"} Pipelines: [:browser] 12:29:50.299 [debug] QUERY OK source="sources" db=0.2ms idle=126.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.300 [debug] QUERY OK source="media_profiles" db=0.1ms idle=127.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:50.300 [debug] QUERY OK source="tasks" db=0.1ms idle=127.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [11, "executing", "available", "scheduled", "retryable"] 12:29:50.300 [debug] QUERY OK source="settings" db=0.1ms idle=127.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.301 [debug] QUERY OK source="settings" db=0.0ms idle=126.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.301 [debug] QUERY OK source="settings" db=0.2ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.303 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.304 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [11] 12:29:50.304 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [11, 10, 0] 12:29:50.305 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.305 [debug] QUERY OK source="media_items" db=0.1ms idle=3.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [11] 12:29:50.306 [debug] QUERY OK source="media_items" db=0.3ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [11, 10, 0] 12:29:50.307 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.307 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [11] 12:29:50.308 [debug] QUERY OK source="media_items" db=0.4ms idle=2.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [11, 10, 0] 12:29:50.309 [info] Sent 200 in 10ms 12:29:50.447 [info] GET /sources/11/ 12:29:50.447 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "11"} Pipelines: [:browser] 12:29:50.448 [debug] QUERY OK source="sources" db=0.2ms idle=141.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.448 [debug] QUERY OK source="media_profiles" db=0.1ms idle=141.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:50.449 [debug] QUERY OK source="tasks" db=0.2ms idle=141.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 (?,?,?,?)) [11, "executing", "available", "scheduled", "retryable"] 12:29:50.450 [debug] QUERY OK source="settings" db=0.4ms idle=140.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.450 [debug] QUERY OK source="settings" db=0.3ms idle=122.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.451 [debug] QUERY OK source="settings" db=0.5ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.452 [debug] QUERY OK source="sources" db=0.1ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.453 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [11] 12:29:50.454 [debug] QUERY OK source="media_items" db=0.4ms idle=3.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [11, 10, 0] 12:29:50.455 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.455 [debug] QUERY OK source="media_items" db=0.1ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [11] 12:29:50.455 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [11, 10, 0] 12:29:50.457 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.457 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [11] 12:29:50.458 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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 ? [11, 10, 0] 12:29:50.459 [info] Sent 200 in 11ms 12:29:50.592 [info] GET /sources/11/ 12:29:50.592 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "11"} Pipelines: [:browser] 12:29:50.592 [debug] QUERY OK source="sources" db=0.2ms idle=137.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.593 [debug] QUERY OK source="media_profiles" db=0.1ms idle=137.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:50.593 [debug] QUERY OK source="tasks" db=0.2ms idle=136.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [11, "executing", "available", "scheduled", "retryable"] 12:29:50.594 [debug] QUERY OK source="settings" db=0.1ms idle=136.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.594 [debug] QUERY OK source="settings" db=0.0ms idle=136.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.595 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.596 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.597 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=2.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")))) [11] 12:29:50.598 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [11, 10, 0] 12:29:50.599 [debug] QUERY OK source="sources" db=0.7ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.599 [debug] QUERY OK source="media_items" db=0.2ms idle=4.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [11] 12:29:50.600 [debug] QUERY OK source="media_items" db=0.3ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [11, 10, 0] 12:29:50.601 [debug] QUERY OK source="sources" db=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.601 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [11] 12:29:50.602 [debug] QUERY OK source="media_items" db=0.4ms idle=2.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [11, 10, 0] 12:29:50.603 [info] Sent 200 in 10ms 12:29:50.739 [info] GET /sources/11/edit 12:29:50.739 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "11"} Pipelines: [:browser] 12:29:50.739 [debug] QUERY OK source="sources" db=0.2ms idle=139.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 12:29:50.740 [debug] QUERY OK source="media_profiles" db=0.1ms idle=139.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:29:50.740 [debug] QUERY OK source="settings" db=0.1ms idle=139.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.741 [debug] QUERY OK source="settings" db=0.2ms idle=139.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.741 [debug] QUERY OK source="settings" db=0.1ms idle=139.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.745 [info] Sent 200 in 6ms 12:29:50.873 [info] GET /sources/9 12:29:50.873 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 12:29:50.873 [debug] QUERY OK source="sources" db=0.2ms idle=133.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:50.874 [debug] QUERY OK source="media_profiles" db=0.1ms idle=133.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:50.888 [debug] QUERY OK source="tasks" db=13.5ms idle=133.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [9, "executing", "available", "scheduled", "retryable"] 12:29:50.888 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=147.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" = ?) [6580] 12:29:50.889 [debug] QUERY OK source="settings" db=0.4ms idle=147.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.889 [debug] QUERY OK source="settings" db=0.3ms idle=15.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.890 [debug] QUERY OK source="settings" db=0.2ms idle=15.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:50.891 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:50.892 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=3.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [9] 12:29:50.893 [debug] QUERY OK source="media_items" db=0.5ms idle=3.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 12:29:50.894 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:50.894 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [9] 12:29:50.895 [debug] QUERY OK source="media_items" db=0.5ms idle=2.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 12:29:50.896 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:50.897 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [9] 12:29:50.897 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 12:29:50.899 [info] Sent 200 in 26ms 12:29:51.019 [info] GET /sources/9/ 12:29:51.020 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 12:29:51.020 [debug] QUERY OK source="sources" db=0.2ms idle=125.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:51.020 [debug] QUERY OK source="media_profiles" db=0.1ms idle=125.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:51.024 [debug] QUERY OK source="tasks" db=3.5ms idle=124.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [9, "executing", "available", "scheduled", "retryable"] 12:29:51.025 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=127.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" = ?) [6580] 12:29:51.025 [debug] QUERY OK source="settings" db=0.1ms idle=127.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.025 [debug] QUERY OK source="settings" db=0.1ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.026 [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 [] 12:29:51.028 [debug] QUERY OK source="sources" db=0.8ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:51.029 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [9] 12:29:51.030 [debug] QUERY OK source="media_items" db=0.8ms idle=3.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 12:29:51.031 [debug] QUERY OK source="sources" db=0.1ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:51.031 [debug] QUERY OK source="media_items" db=0.2ms idle=4.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [9] 12:29:51.032 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 12:29:51.033 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:51.033 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [9] 12:29:51.034 [debug] QUERY OK source="media_items" db=0.5ms idle=2.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 12:29:51.036 [info] Sent 200 in 16ms 12:29:51.161 [info] GET /sources/9/ 12:29:51.161 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 12:29:51.162 [debug] QUERY OK source="sources" db=0.2ms idle=130.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:51.162 [debug] QUERY OK source="media_profiles" db=0.1ms idle=130.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:51.166 [debug] QUERY OK source="tasks" db=3.2ms idle=129.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [9, "executing", "available", "scheduled", "retryable"] 12:29:51.166 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=132.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" = ?) [6580] 12:29:51.166 [debug] QUERY OK source="settings" db=0.1ms idle=132.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.167 [debug] QUERY OK source="settings" db=0.1ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.167 [debug] QUERY OK source="settings" db=0.1ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.169 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:51.170 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=3.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [9] 12:29:51.170 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 12:29:51.171 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:51.172 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [9] 12:29:51.172 [debug] QUERY OK source="media_items" db=0.6ms idle=2.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 12:29:51.173 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:51.174 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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"))))) [9] 12:29:51.175 [debug] QUERY OK source="media_items" db=0.4ms idle=3.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 ? [9, 10, 0] 12:29:51.176 [info] Sent 200 in 15ms 12:29:51.307 [info] GET /sources/9/edit 12:29:51.307 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 12:29:51.307 [debug] QUERY OK source="sources" db=0.2ms idle=135.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 12:29:51.308 [debug] QUERY OK source="media_profiles" db=0.1ms idle=135.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:29:51.308 [debug] QUERY OK source="settings" db=0.2ms idle=134.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.308 [debug] QUERY OK source="settings" db=0.1ms idle=134.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.309 [debug] QUERY OK source="settings" db=0.0ms idle=134.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.313 [info] Sent 200 in 6ms 12:29:51.434 [info] GET /sources/3/ 12:29:51.435 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 12:29:51.435 [debug] QUERY OK source="sources" db=0.2ms idle=127.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:51.436 [debug] QUERY OK source="media_profiles" db=0.1ms idle=127.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:51.436 [debug] QUERY OK source="tasks" db=0.2ms idle=127.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 (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 12:29:51.437 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=127.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" = ?) [6585] 12:29:51.437 [debug] QUERY OK source="settings" db=0.1ms idle=108.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.437 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.438 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.439 [debug] QUERY OK source="sources" db=0.1ms idle=2.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:51.440 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 12:29:51.441 [debug] QUERY OK source="media_items" db=0.5ms idle=3.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [3, 10, 0] 12:29:51.442 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:51.442 [debug] QUERY OK source="media_items" db=0.0ms idle=4.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 12:29:51.442 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 12:29:51.443 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:51.444 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [3] 12:29:51.445 [debug] QUERY OK source="media_items" db=0.5ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 12:29:51.446 [info] Sent 200 in 12ms 12:29:51.578 [info] GET /sources/3/ 12:29:51.578 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 12:29:51.579 [debug] QUERY OK source="sources" db=0.2ms idle=136.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:51.579 [debug] QUERY OK source="media_profiles" db=0.1ms idle=136.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:51.580 [debug] QUERY OK source="tasks" db=0.2ms idle=135.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 (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 12:29:51.580 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=135.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6585] 12:29:51.580 [debug] QUERY OK source="settings" db=0.0ms idle=135.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.580 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.581 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.583 [debug] QUERY OK source="sources" db=0.1ms idle=2.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:51.583 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=2.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")))) [3] 12:29:51.584 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [3, 10, 0] 12:29:51.585 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:51.585 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 12:29:51.586 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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 ? [3, 10, 0] 12:29:51.587 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:51.587 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [3] 12:29:51.588 [debug] QUERY OK source="media_items" db=0.6ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 12:29:51.590 [info] Sent 200 in 11ms 12:29:51.722 [info] GET /sources/3/edit 12:29:51.722 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 12:29:51.722 [debug] QUERY OK source="sources" db=0.2ms idle=136.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:51.723 [debug] QUERY OK source="media_profiles" db=0.1ms idle=136.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:29:51.723 [debug] QUERY OK source="settings" db=0.1ms idle=136.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.724 [debug] QUERY OK source="settings" db=0.2ms idle=135.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.724 [debug] QUERY OK source="settings" db=0.0ms idle=135.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.728 [info] Sent 200 in 5ms 12:29:51.849 [info] GET /sources/7 12:29:51.849 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "7"} Pipelines: [:browser] 12:29:51.849 [debug] QUERY OK source="sources" db=0.2ms idle=126.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:51.850 [debug] QUERY OK source="media_profiles" db=0.1ms idle=126.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:51.850 [debug] QUERY OK source="tasks" db=0.1ms idle=126.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [7, "executing", "available", "scheduled", "retryable"] 12:29:51.850 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=126.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6568] 12:29:51.851 [debug] QUERY OK source="settings" db=0.1ms idle=126.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.851 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.852 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.853 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:51.854 [debug] QUERY OK source="media_items" db=0.3ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [7] 12:29:51.855 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=3.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [7, 10, 0] 12:29:51.855 [debug] QUERY OK source="sources" db=0.1ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:51.856 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [7] 12:29:51.856 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [7, 10, 0] 12:29:51.857 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:51.858 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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"))))) [7] 12:29:51.858 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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 ? [7, 10, 0] 12:29:51.859 [info] Sent 200 in 10ms 12:29:51.992 [info] GET /sources/7/ 12:29:51.992 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "7"} Pipelines: [:browser] 12:29:51.993 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=136.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:51.994 [debug] QUERY OK source="media_profiles" db=0.1ms idle=137.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:51.994 [debug] QUERY OK source="tasks" db=0.3ms idle=136.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [7, "executing", "available", "scheduled", "retryable"] 12:29:51.995 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=136.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6568] 12:29:51.995 [debug] QUERY OK source="settings" db=0.1ms idle=136.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.995 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.996 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:51.997 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:51.998 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [7] 12:29:51.999 [debug] QUERY OK source="media_items" db=0.5ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [7, 10, 0] 12:29:52.000 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:52.000 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [7] 12:29:52.001 [debug] QUERY OK source="media_items" db=0.5ms idle=2.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 ? [7, 10, 0] 12:29:52.002 [debug] QUERY OK source="sources" db=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:52.003 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [7] 12:29:52.003 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [7, 10, 0] 12:29:52.004 [info] Sent 200 in 12ms 12:29:52.125 [info] GET /sources/7/ 12:29:52.126 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "7"} Pipelines: [:browser] 12:29:52.126 [debug] QUERY OK source="sources" db=0.3ms idle=125.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:52.127 [debug] QUERY OK source="media_profiles" db=0.2ms idle=125.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:52.127 [debug] QUERY OK source="tasks" db=0.2ms idle=125.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 (?,?,?,?)) [7, "executing", "available", "scheduled", "retryable"] 12:29:52.128 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=124.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6568] 12:29:52.129 [debug] QUERY OK source="settings" db=0.4ms idle=124.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.129 [debug] QUERY OK source="settings" db=0.3ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.130 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.131 [debug] QUERY OK source="sources" db=0.2ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:52.132 [debug] QUERY OK source="media_items" db=0.3ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [7] 12:29:52.133 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=3.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [7, 10, 0] 12:29:52.133 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:52.134 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [7] 12:29:52.134 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [7, 10, 0] 12:29:52.135 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:52.136 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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"))))) [7] 12:29:52.136 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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 ? [7, 10, 0] 12:29:52.137 [info] Sent 200 in 12ms 12:29:52.278 [info] GET /sources/7/edit 12:29:52.278 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "7"} Pipelines: [:browser] 12:29:52.279 [debug] QUERY OK source="sources" db=0.2ms idle=144.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 12:29:52.279 [debug] QUERY OK source="media_profiles" db=0.1ms idle=145.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:29:52.280 [debug] QUERY OK source="settings" db=0.1ms idle=144.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.280 [debug] QUERY OK source="settings" db=0.2ms idle=144.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.281 [debug] QUERY OK source="settings" db=0.1ms idle=144.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.284 [info] Sent 200 in 6ms 12:29:52.410 [info] GET /sources/5/ 12:29:52.410 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 12:29:52.411 [debug] QUERY OK source="sources" db=0.2ms idle=131.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:52.411 [debug] QUERY OK source="media_profiles" db=0.1ms idle=131.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:52.412 [debug] QUERY OK source="tasks" db=0.2ms idle=131.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 (?,?,?,?)) [5, "executing", "available", "scheduled", "retryable"] 12:29:52.412 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=131.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" = ?) [6577] 12:29:52.413 [debug] QUERY OK source="settings" db=0.1ms idle=82.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.413 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.413 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.415 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:52.417 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=2.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")))) [5] 12:29:52.419 [debug] QUERY OK source="media_items" db=1.5ms idle=4.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 12:29:52.419 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [5] 12:29:52.420 [debug] QUERY OK source="media_items" db=0.2ms idle=6.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 12:29:52.421 [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 ? [5, 10, 0] 12:29:52.422 [debug] QUERY OK source="sources" db=0.1ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:52.423 [debug] QUERY OK source="media_items" db=1.3ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [5] 12:29:52.425 [debug] QUERY OK source="media_items" db=1.7ms idle=4.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 12:29:52.427 [info] Sent 200 in 16ms 12:29:52.566 [info] GET /sources/5/ 12:29:52.567 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 12:29:52.567 [debug] QUERY OK source="sources" db=0.2ms idle=147.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:52.568 [debug] QUERY OK source="media_profiles" db=0.1ms idle=146.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:52.568 [debug] QUERY OK source="tasks" db=0.2ms idle=146.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [5, "executing", "available", "scheduled", "retryable"] 12:29:52.568 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=144.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" = ?) [6577] 12:29:52.569 [debug] QUERY OK source="settings" db=0.4ms idle=143.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.570 [debug] QUERY OK source="settings" db=0.3ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.571 [debug] QUERY OK source="settings" db=0.5ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.572 [debug] QUERY OK source="sources" db=0.1ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:52.574 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=4.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [5] 12:29:52.576 [debug] QUERY OK source="media_items" db=1.6ms 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 (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [5, 10, 0] 12:29:52.577 [debug] QUERY OK source="sources" db=0.2ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:52.577 [debug] QUERY OK source="media_items" db=0.2ms idle=6.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 12:29:52.578 [debug] QUERY OK source="media_items" db=0.8ms idle=5.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 ? [5, 10, 0] 12:29:52.579 [debug] QUERY OK source="sources" db=0.1ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:52.581 [debug] QUERY OK source="media_items" db=1.3ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [5] 12:29:52.583 [debug] QUERY OK source="media_items" db=1.7ms idle=4.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 12:29:52.585 [info] Sent 200 in 18ms 12:29:52.720 [info] GET /sources/5/edit 12:29:52.720 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 12:29:52.721 [debug] QUERY OK source="sources" db=0.2ms idle=143.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:52.721 [debug] QUERY OK source="media_profiles" db=0.2ms idle=143.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:29:52.722 [debug] QUERY OK source="settings" db=0.1ms idle=142.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.722 [debug] QUERY OK source="settings" db=0.1ms idle=141.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.723 [debug] QUERY OK source="settings" db=0.2ms idle=139.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.726 [info] Sent 200 in 5ms 12:29:52.860 [info] GET /sources/8 12:29:52.860 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "8"} Pipelines: [:browser] 12:29:52.861 [debug] QUERY OK source="sources" db=0.2ms idle=139.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:52.861 [debug] QUERY OK source="media_profiles" db=0.1ms idle=139.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:52.861 [debug] QUERY OK source="tasks" db=0.1ms idle=139.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [8, "executing", "available", "scheduled", "retryable"] 12:29:52.862 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=139.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" = ?) [6575] 12:29:52.862 [debug] QUERY OK source="settings" db=0.1ms idle=139.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.863 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.863 [debug] QUERY OK source="settings" db=0.0ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:52.865 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:52.865 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [8] 12:29:52.866 [debug] QUERY OK source="media_items" db=0.5ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [8, 10, 0] 12:29:52.867 [debug] QUERY OK source="sources" db=0.1ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:52.867 [debug] QUERY OK source="media_items" db=0.1ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [8] 12:29:52.868 [debug] QUERY OK source="media_items" db=0.4ms idle=2.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [8, 10, 0] 12:29:52.869 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:52.869 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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"))))) [8] 12:29:52.870 [debug] QUERY OK source="media_items" db=0.5ms idle=3.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 ? [8, 10, 0] 12:29:52.872 [info] Sent 200 in 12ms 12:29:53.004 [info] GET /sources/8/ 12:29:53.005 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "8"} Pipelines: [:browser] 12:29:53.005 [debug] QUERY OK source="sources" db=0.2ms idle=137.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:53.006 [debug] QUERY OK source="media_profiles" db=0.1ms idle=137.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:53.006 [debug] QUERY OK source="tasks" db=0.1ms idle=137.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [8, "executing", "available", "scheduled", "retryable"] 12:29:53.006 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=136.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" = ?) [6575] 12:29:53.007 [debug] QUERY OK source="settings" db=0.1ms idle=136.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:53.007 [debug] QUERY OK source="settings" db=0.2ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:53.008 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:53.009 [debug] QUERY OK source="sources" db=0.2ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:53.010 [debug] QUERY OK source="media_items" db=0.4ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [8] 12:29:53.011 [debug] QUERY OK source="media_items" db=0.5ms idle=3.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [8, 10, 0] 12:29:53.012 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:53.012 [debug] QUERY OK source="media_items" db=0.1ms idle=4.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [8] 12:29:53.012 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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 ? [8, 10, 0] 12:29:53.014 [debug] QUERY OK source="sources" db=0.1ms queue=0.4ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:53.014 [debug] QUERY OK source="media_items" db=0.3ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [8] 12:29:53.015 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=2.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [8, 10, 0] 12:29:53.018 [info] Sent 200 in 13ms 12:29:53.158 [info] GET /sources/8/ 12:29:53.158 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "8"} Pipelines: [:browser] 12:29:53.159 [debug] QUERY OK source="sources" db=0.2ms idle=146.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:53.159 [debug] QUERY OK source="media_profiles" db=0.1ms idle=146.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:53.160 [debug] QUERY OK source="tasks" db=0.2ms idle=146.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 (?,?,?,?)) [8, "executing", "available", "scheduled", "retryable"] 12:29:53.160 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=145.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" = ?) [6575] 12:29:53.161 [debug] QUERY OK source="settings" db=0.1ms idle=145.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:53.161 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:53.162 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:53.163 [debug] QUERY OK source="sources" db=0.1ms idle=2.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:53.164 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=2.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")))) [8] 12:29:53.165 [debug] QUERY OK source="media_items" db=0.6ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [8, 10, 0] 12:29:53.166 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:53.166 [debug] QUERY OK source="media_items" db=0.1ms idle=4.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [8] 12:29:53.166 [debug] QUERY OK source="media_items" db=0.2ms idle=3.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 ? [8, 10, 0] 12:29:53.167 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 12:29:53.168 [debug] QUERY OK source="media_items" db=0.3ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [8] 12:29:53.169 [debug] QUERY OK source="media_items" db=0.5ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [8, 10, 0] 12:29:53.170 [info] Sent 200 in 12ms 12:29:53.292 [info] GET /download_logs 12:29:53.293 [debug] Processing with PinchflatWeb.Settings.SettingController.download_logs/2 Parameters: %{} Pipelines: [:browser] 12:29:53.293 [info] Sent 200 in 731µs 12:29:54.694 [info] GET /sources/3/media/256408/edit 12:29:54.694 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "256408", "source_id" => "3"} Pipelines: [:browser] 12:29:54.695 [debug] QUERY OK source="media_items" db=0.2ms idle=361.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" = ?) [256408] 12:29:54.695 [debug] QUERY OK source="settings" db=0.1ms idle=269.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:54.696 [debug] QUERY OK source="settings" db=0.4ms idle=270.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:54.697 [debug] QUERY OK source="settings" db=0.2ms idle=271.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:54.698 [info] Sent 200 in 4ms 12:29:54.825 [info] GET /sources/3/media/256408/force_download 12:29:54.826 [debug] QUERY OK source="settings" db=0.1ms idle=400.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:54.826 [debug] QUERY OK source="settings" db=0.1ms idle=131.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:54.826 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:54.826 [error] #PID<0.556307.0> running PinchflatWeb.Endpoint (connection #PID<0.556246.0>, stream id 44) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/media/256408/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/3/media/256408/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556246.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/256408/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 50646}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4be9fffaddb77e4-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 162.159.99.56", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.99.56" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 44, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556307.0>, params: %{}, path_info: ["sources", "3", "media", "256408", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4be9fffaddb77e4-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 162.159.99.56"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.159.99.56"} ], request_path: "/sources/3/media/256408/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KacNQFj9rTmMAQfoh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556246.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/256408/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 50646}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4be9fffaddb77e4-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 162.159.99.56", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.159.99.56" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 44, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, m (truncated) 12:29:54.938 [info] GET /sources/3/media/256408 12:29:54.938 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256408", "prevent_download" => "true", "source_id" => "3"} Pipelines: [:browser] 12:29:54.939 [debug] QUERY OK source="media_items" db=0.2ms idle=243.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" = ?) [256408] 12:29:54.940 [debug] QUERY OK source="tasks" db=0.1ms idle=243.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" [256408] 12:29:54.940 [debug] QUERY OK source="sources" db=0.3ms idle=242.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:54.940 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=114.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6569, 6584] 12:29:54.941 [debug] QUERY OK source="settings" db=0.1ms idle=114.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:54.941 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:54.941 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:54.942 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:54.944 [info] Sent 200 in 6ms 12:29:55.068 [info] GET /media/07010e94-057d-4dc4-b203-4d69af1d8988/stream 12:29:55.068 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "07010e94-057d-4dc4-b203-4d69af1d8988", "v" => "1792202450"} Pipelines: [:maybe_basic_auth] 12:29:55.069 [debug] QUERY OK source="media_items" db=0.5ms idle=128.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["07010e94-057d-4dc4-b203-4d69af1d8988"] 12:29:55.069 [debug] Invalid range request for media item: 07010e94-057d-4dc4-b203-4d69af1d8988 - serving full file 12:29:55.070 [info] Sent 200 in 1ms 12:29:55.900 [info] GET /sources/3/media/198180/edit 12:29:55.900 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "198180", "source_id" => "3"} Pipelines: [:browser] 12:29:55.901 [debug] QUERY OK source="media_items" db=0.2ms idle=959.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [198180] 12:29:55.901 [debug] QUERY OK source="settings" db=0.1ms idle=959.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.902 [debug] QUERY OK source="settings" db=0.0ms idle=959.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.902 [debug] QUERY OK source="settings" db=0.1ms idle=832.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.903 [info] Sent 200 in 3ms 12:29:55.904 [info] GET /sources/3/sync_files_on_disk 12:29:55.905 [info] GET /sources/new 12:29:55.905 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "3"} Pipelines: [:browser] 12:29:55.905 [info] GET /sources/3/force_index 12:29:55.905 [debug] QUERY OK source="settings" db=0.4ms idle=570.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.906 [debug] QUERY OK source="settings" db=0.3ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.907 [info] GET /sources/3/force_metadata_refresh 12:29:55.907 [debug] QUERY OK source="settings" db=1.1ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.907 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:55.907 [debug] QUERY OK source="settings" db=1.1ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.907 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:55.907 [info] GET /sources/3/force_redownload 12:29:55.908 [debug] QUERY OK source="settings" db=0.5ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.909 [info] GET /sources/3 12:29:55.909 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "3"} Pipelines: [:browser] 12:29:55.909 [debug] QUERY OK source="settings" db=0.6ms queue=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 [] 12:29:55.909 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:55.911 [debug] QUERY OK source="sources" db=1.5ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:55.911 [debug] QUERY OK source="settings" db=2.9ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.912 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.2ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:55.908 [error] #PID<0.556319.0> running PinchflatWeb.Endpoint (connection #PID<0.556313.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556313.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35996}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea0065895121b-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556319.0>, params: %{}, path_info: ["sources", "3", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea0065895121b-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 104.22.14.64"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.14.64"} ], request_path: "/sources/3/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KagOvjbQBbqwAQfrB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556313.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35996}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea0065895121b-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, 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/3/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ (truncated) 12:29:55.913 [debug] QUERY OK source="settings" db=1.2ms queue=0.1ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.913 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:55.913 [debug] QUERY OK source="tasks" db=1.0ms queue=0.1ms idle=3.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 12:29:55.908 [error] #PID<0.556317.0> running PinchflatWeb.Endpoint (connection #PID<0.556315.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/sync_files_on_disk ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556315.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36006}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea0066972ae27-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556317.0>, params: %{}, path_info: ["sources", "3", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea0066972ae27-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 104.22.14.64"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.14.64"} ], request_path: "/sources/3/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KagOgqKFKMm8AM1li"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556315.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36006}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea0066972ae27-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, 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/3/sync_files_on_disk (Pinchf (truncated) 12:29:55.915 [debug] QUERY OK source="oban_jobs" db=1.0ms queue=0.1ms idle=3.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6585] 12:29:55.916 [debug] QUERY OK source="settings" db=0.3ms queue=0.2ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.910 [error] #PID<0.556321.0> running PinchflatWeb.Endpoint (connection #PID<0.556320.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/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/3/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556320.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36020}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00669202d6c-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556321.0>, params: %{}, path_info: ["sources", "3", "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 => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea00669202d6c-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 104.22.14.64"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.14.64"} ], request_path: "/sources/3/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KagPIgsV2GK0AQfrh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556320.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36020}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00669202d6c-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, 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/3/fo (truncated) 12:29:55.916 [debug] QUERY OK source="sources" db=0.6ms queue=0.4ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:55.917 [debug] QUERY OK source="settings" db=0.7ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.917 [info] GET /sources/3/media/248507/edit 12:29:55.917 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "248507", "source_id" => "3"} Pipelines: [:browser] 12:29:55.917 [info] GET /sources/3/force_download_pending 12:29:55.918 [debug] QUERY OK source="settings" db=0.5ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.918 [debug] QUERY OK source="settings" db=0.8ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.918 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.3ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:29:55.920 [debug] QUERY OK source="settings" db=0.8ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.921 [debug] QUERY OK source="settings" db=0.3ms queue=0.3ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.921 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:55.914 [error] #PID<0.556323.0> running PinchflatWeb.Endpoint (connection #PID<0.556322.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556322.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36030}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea0065b7fae2c-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556323.0>, params: %{}, path_info: ["sources", "3", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea0065b7fae2c-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 104.22.14.64"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.14.64"} ], request_path: "/sources/3/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KagPRcl1zkDgAQfsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556322.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36030}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea0065b7fae2c-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, 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/3/force_redownload (PinchflatWeb.Router) (truncated) 12:29:55.922 [debug] QUERY OK source="settings" db=3.1ms queue=0.4ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.922 [info] GET /sources/3/media/248507 12:29:55.922 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:55.922 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "248507", "source_id" => "3"} Pipelines: [:browser] 12:29:55.923 [debug] QUERY OK source="settings" db=0.8ms queue=0.5ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.925 [debug] QUERY OK source="media_items" db=2.7ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 12:29:55.926 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=2.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [248507] 12:29:55.927 [info] GET /sources/3/media/244694 12:29:55.927 [debug] QUERY OK source="settings" db=1.3ms queue=0.3ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.927 [debug] QUERY OK source="sources" db=0.4ms idle=1.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:55.927 [debug] QUERY OK source="tasks" db=0.4ms idle=3.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" [248507] 12:29:55.927 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "244694", "source_id" => "3"} Pipelines: [:browser] 12:29:55.923 [error] #PID<0.556327.0> running PinchflatWeb.Endpoint (connection #PID<0.556313.0>, stream id 3) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/force_download_pending ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556313.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35996}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea0065bdb8fa3-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 172.68.54.120", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.68.54.120" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556327.0>, params: %{}, path_info: ["sources", "3", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea0065bdb8fa3-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 172.68.54.120"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.68.54.120"} ], request_path: "/sources/3/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KagRnbo3JQJ4AAaKk"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556313.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35996}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea0065bdb8fa3-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 172.68.54.120", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.68.54.120" }, 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 /source (truncated) 12:29:55.928 [info] GET /sources/3/media/244694/edit 12:29:55.928 [debug] QUERY OK source="media_items" db=2.5ms idle=3.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 12:29:55.928 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "244694", "source_id" => "3"} Pipelines: [:browser] 12:29:55.929 [debug] QUERY OK source="media_items" db=0.6ms idle=1.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [244694] 12:29:55.929 [debug] QUERY OK source="oban_jobs" db=0.6ms queue=0.3ms idle=2.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6442, 6456] 12:29:55.929 [debug] QUERY OK source="settings" db=0.2ms queue=0.4ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.929 [debug] QUERY OK source="media_items" db=0.7ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [244694] 12:29:55.930 [debug] QUERY OK source="sources" db=0.5ms idle=0.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:55.930 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.930 [debug] QUERY OK source="sources" db=0.7ms idle=0.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:55.930 [debug] QUERY OK source="tasks" db=0.9ms queue=0.1ms idle=0.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" [244694] 12:29:55.931 [debug] QUERY OK source="media_items" db=0.3ms queue=0.3ms idle=0.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 12:29:55.931 [debug] QUERY OK source="settings" db=0.2ms idle=0.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.931 [debug] QUERY OK source="settings" db=1.0ms queue=0.2ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.933 [debug] QUERY OK source="oban_jobs" db=1.8ms idle=0.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6375, 6392] 12:29:55.933 [debug] QUERY OK source="media_items" db=2.1ms idle=0.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 12:29:55.934 [debug] QUERY OK source="settings" db=2.2ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.934 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.934 [debug] QUERY OK source="settings" db=2.7ms queue=0.2ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.935 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:55.935 [debug] QUERY OK source="settings" db=0.6ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.935 [debug] QUERY OK source="media_profiles" db=0.5ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:55.936 [info] Sent 200 in 31ms 12:29:55.936 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.936 [debug] QUERY OK source="settings" db=0.6ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.936 [debug] QUERY OK source="media_items" db=0.8ms idle=1.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"))))) [3] 12:29:55.937 [info] Sent 200 in 9ms 12:29:55.939 [debug] QUERY OK source="media_profiles" db=1.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:55.940 [debug] QUERY OK source="media_items" db=1.7ms idle=2.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 12:29:55.941 [info] Sent 200 in 18ms 12:29:55.941 [info] Sent 200 in 32ms 12:29:55.943 [info] Sent 200 in 16ms 12:29:55.956 [debug] QUERY OK source="media_items" db=1.0ms idle=19.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" = ?) [248507] 12:29:55.960 [debug] QUERY OK source="settings" db=0.4ms queue=0.2ms idle=23.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.961 [debug] QUERY OK source="settings" db=0.5ms idle=24.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.962 [debug] QUERY OK source="settings" db=0.1ms idle=22.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:55.963 [info] Sent 200 in 45ms 12:29:56.062 [info] GET /sources/3/media/240776 12:29:56.062 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "240776", "source_id" => "3"} Pipelines: [:browser] 12:29:56.063 [debug] QUERY OK source="media_items" db=0.5ms idle=122.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" = ?) [240776] 12:29:56.064 [debug] QUERY OK source="sources" db=0.3ms idle=102.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.064 [debug] QUERY OK source="tasks" db=0.4ms idle=106.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" [240776] 12:29:56.064 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=102.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6325] 12:29:56.065 [debug] QUERY OK source="settings" db=0.2ms idle=103.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.065 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.066 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.067 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.068 [info] Sent 200 in 6ms 12:29:56.112 [info] GET /sources/3/media/233329 12:29:56.112 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "233329", "source_id" => "3"} Pipelines: [:browser] 12:29:56.113 [debug] QUERY OK source="media_items" db=0.3ms idle=47.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" = ?) [233329] 12:29:56.114 [debug] QUERY OK source="sources" db=0.8ms idle=47.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.115 [debug] QUERY OK source="tasks" db=1.3ms idle=48.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" [233329] 12:29:56.116 [debug] QUERY OK source="settings" db=0.5ms idle=49.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.116 [debug] QUERY OK source="settings" db=0.3ms idle=49.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.117 [info] GET /sources/3/media/237089/edit 12:29:56.117 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "237089", "source_id" => "3"} Pipelines: [:browser] 12:29:56.117 [debug] QUERY OK source="settings" db=0.1ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.118 [debug] QUERY OK source="media_items" db=0.5ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [237089] 12:29:56.119 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.119 [debug] QUERY OK source="settings" db=0.6ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.120 [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 [] 12:29:56.120 [info] Sent 200 in 8ms 12:29:56.121 [debug] QUERY OK source="settings" db=0.6ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.122 [info] GET /sources/3/media/237089 12:29:56.122 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "237089", "source_id" => "3"} Pipelines: [:browser] 12:29:56.124 [info] GET /sources/3/media/240776/edit 12:29:56.124 [debug] QUERY OK source="media_items" db=1.2ms idle=4.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" = ?) [237089] 12:29:56.124 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "240776", "source_id" => "3"} Pipelines: [:browser] 12:29:56.124 [info] Sent 200 in 6ms 12:29:56.125 [debug] QUERY OK source="tasks" db=0.4ms idle=5.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" [237089] 12:29:56.126 [info] GET /sources/3/media/233329/edit 12:29:56.126 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [240776] 12:29:56.126 [debug] QUERY OK source="sources" db=0.9ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.126 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "233329", "source_id" => "3"} Pipelines: [:browser] 12:29:56.127 [debug] QUERY OK source="settings" db=0.2ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.127 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.127 [debug] QUERY OK source="media_items" db=0.6ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [233329] 12:29:56.127 [debug] QUERY OK source="settings" db=0.1ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.128 [debug] QUERY OK source="settings" db=0.5ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.128 [debug] QUERY OK source="settings" db=0.5ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.128 [debug] QUERY OK source="settings" db=0.7ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.129 [debug] QUERY OK source="settings" db=0.3ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.129 [debug] QUERY OK source="settings" db=0.9ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.130 [info] Sent 200 in 6ms 12:29:56.130 [debug] QUERY OK source="media_profiles" db=0.5ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.131 [debug] QUERY OK source="settings" db=1.6ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.132 [info] Sent 200 in 6ms 12:29:56.133 [info] Sent 200 in 10ms 12:29:56.214 [info] GET /sources/3/media/229628 12:29:56.214 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "229628", "source_id" => "3"} Pipelines: [:browser] 12:29:56.215 [debug] QUERY OK source="media_items" db=0.4ms idle=85.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [229628] 12:29:56.215 [debug] QUERY OK source="tasks" db=0.2ms idle=86.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" [229628] 12:29:56.215 [debug] QUERY OK source="sources" db=0.3ms idle=86.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.216 [debug] QUERY OK source="settings" db=0.2ms idle=86.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.216 [debug] QUERY OK source="settings" db=0.1ms idle=85.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.217 [debug] QUERY OK source="settings" db=0.3ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.218 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.220 [info] Sent 200 in 5ms 12:29:56.226 [info] GET /sources/3/media/229628/edit 12:29:56.226 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "229628", "source_id" => "3"} Pipelines: [:browser] 12:29:56.227 [debug] QUERY OK source="media_items" db=0.2ms idle=11.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [229628] 12:29:56.227 [debug] QUERY OK source="settings" db=0.1ms idle=11.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.228 [debug] QUERY OK source="settings" db=0.0ms idle=11.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.228 [debug] QUERY OK source="settings" db=0.1ms idle=11.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.229 [info] Sent 200 in 3ms 12:29:56.285 [info] GET /sources/3/media/225855/edit 12:29:56.286 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "225855", "source_id" => "3"} Pipelines: [:browser] 12:29:56.286 [debug] QUERY OK source="media_items" db=0.2ms idle=67.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [225855] 12:29:56.287 [debug] QUERY OK source="settings" db=0.1ms idle=59.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.287 [debug] QUERY OK source="settings" db=0.2ms idle=59.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.288 [debug] QUERY OK source="settings" db=0.6ms idle=59.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.289 [info] Sent 200 in 3ms 12:29:56.291 [info] GET /sources/3/media/225855 12:29:56.291 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "225855", "source_id" => "3"} Pipelines: [:browser] 12:29:56.292 [debug] QUERY OK source="media_items" db=0.2ms queue=0.2ms idle=62.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [225855] 12:29:56.292 [debug] QUERY OK source="tasks" db=0.2ms idle=5.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" [225855] 12:29:56.292 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.293 [debug] QUERY OK source="settings" db=0.3ms idle=5.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.294 [debug] QUERY OK source="settings" db=0.1ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.294 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.295 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.299 [info] Sent 200 in 7ms 12:29:56.308 [info] GET /sources/3/media/218665 12:29:56.309 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "218665", "source_id" => "3"} Pipelines: [:browser] 12:29:56.309 [debug] QUERY OK source="media_items" db=0.4ms idle=16.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" = ?) [218665] 12:29:56.311 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=16.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.311 [debug] QUERY OK source="tasks" db=0.8ms idle=16.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" [218665] 12:29:56.312 [debug] QUERY OK source="settings" db=0.5ms idle=17.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.313 [debug] QUERY OK source="settings" db=0.3ms idle=17.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.314 [debug] QUERY OK source="settings" db=0.3ms queue=0.2ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.317 [debug] QUERY OK source="media_profiles" db=1.4ms idle=4.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.320 [info] Sent 200 in 11ms 12:29:56.327 [info] GET /sources/3/media/218665/edit 12:29:56.327 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "218665", "source_id" => "3"} Pipelines: [:browser] 12:29:56.328 [debug] QUERY OK source="media_items" db=0.2ms idle=17.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" = ?) [218665] 12:29:56.328 [debug] QUERY OK source="settings" db=0.1ms idle=16.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.329 [debug] QUERY OK source="settings" db=0.4ms idle=15.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.330 [debug] QUERY OK source="settings" db=0.2ms idle=15.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.331 [info] Sent 200 in 4ms 12:29:56.387 [info] GET /sources/3/media/215043 12:29:56.388 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "215043", "source_id" => "3"} Pipelines: [:browser] 12:29:56.388 [debug] QUERY OK source="media_items" db=0.2ms idle=60.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" = ?) [215043] 12:29:56.389 [debug] QUERY OK source="tasks" db=0.1ms idle=60.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" [215043] 12:29:56.389 [debug] QUERY OK source="sources" db=0.3ms idle=59.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.390 [debug] QUERY OK source="settings" db=0.2ms idle=59.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.391 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=52.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.392 [debug] QUERY OK source="settings" db=0.9ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.394 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.396 [info] Sent 200 in 8ms 12:29:56.408 [info] GET /sources/3/media/201686 12:29:56.408 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "201686", "source_id" => "3"} Pipelines: [:browser] 12:29:56.409 [debug] QUERY OK source="media_items" db=0.2ms idle=19.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" = ?) [201686] 12:29:56.409 [info] GET /sources/3/media/205215 12:29:56.409 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "205215", "source_id" => "3"} Pipelines: [:browser] 12:29:56.410 [info] GET /sources/3/media/212241 12:29:56.410 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "212241", "source_id" => "3"} Pipelines: [:browser] 12:29:56.410 [info] GET /sources/3/media/215043/edit 12:29:56.411 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "215043", "source_id" => "3"} Pipelines: [:browser] 12:29:56.411 [debug] QUERY OK source="tasks" db=0.4ms queue=0.5ms idle=19.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" [201686] 12:29:56.411 [debug] QUERY OK source="sources" db=0.5ms idle=16.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.412 [debug] QUERY OK source="media_items" db=1.4ms queue=0.3ms idle=17.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" = ?) [205215] 12:29:56.413 [debug] QUERY OK source="media_items" db=2.4ms idle=19.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" = ?) [212241] 12:29:56.413 [debug] QUERY OK source="media_items" db=1.0ms idle=3.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [215043] 12:29:56.414 [debug] QUERY OK source="tasks" db=1.1ms idle=1.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" [212241] 12:29:56.414 [debug] QUERY OK source="sources" db=1.1ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.414 [debug] QUERY OK source="tasks" db=1.6ms idle=2.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" [205215] 12:29:56.415 [debug] QUERY OK source="sources" db=1.8ms idle=0.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.416 [info] GET /sources/3/media/212241/edit 12:29:56.415 [debug] QUERY OK source="settings" db=1.2ms queue=0.3ms idle=0.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.416 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "212241", "source_id" => "3"} Pipelines: [:browser] 12:29:56.416 [debug] QUERY OK source="settings" db=0.6ms queue=0.9ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.416 [debug] QUERY OK source="settings" db=0.3ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.417 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.418 [debug] QUERY OK source="media_items" db=1.3ms idle=1.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" = ?) [212241] 12:29:56.418 [debug] QUERY OK source="settings" db=1.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.418 [debug] QUERY OK source="settings" db=2.0ms queue=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.418 [debug] QUERY OK source="settings" db=1.1ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.415 [debug] QUERY OK source="settings" db=0.6ms queue=0.6ms idle=0.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.420 [debug] QUERY OK source="settings" db=1.3ms queue=0.2ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.420 [info] GET /sources/3/media/201686/edit 12:29:56.420 [info] GET /sources/3/media/205215/edit 12:29:56.420 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "201686", "source_id" => "3"} Pipelines: [:browser] 12:29:56.420 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "205215", "source_id" => "3"} Pipelines: [:browser] 12:29:56.420 [debug] QUERY OK source="settings" db=1.9ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.421 [debug] QUERY OK source="settings" db=0.5ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.421 [debug] QUERY OK source="media_items" db=0.4ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [205215] 12:29:56.421 [debug] QUERY OK source="media_items" db=0.7ms idle=0.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" = ?) [201686] 12:29:56.422 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.2ms idle=0.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.422 [debug] QUERY OK source="settings" db=0.4ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.422 [debug] QUERY OK source="settings" db=1.3ms decode=0.2ms queue=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.422 [debug] QUERY OK source="media_profiles" db=2.0ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.422 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=0.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.422 [debug] QUERY OK source="settings" db=1.1ms idle=0.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.424 [info] Sent 200 in 14ms 12:29:56.425 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.425 [debug] QUERY OK source="settings" db=0.8ms queue=0.4ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.425 [debug] QUERY OK source="settings" db=1.3ms queue=1.2ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.426 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.3ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.428 [info] Sent 200 in 19ms 12:29:56.427 [debug] QUERY OK source="settings" db=1.3ms queue=0.4ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.429 [debug] QUERY OK source="settings" db=1.1ms queue=1.2ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.429 [info] Sent 200 in 13ms 12:29:56.429 [info] Sent 200 in 9ms 12:29:56.430 [info] Sent 200 in 20ms 12:29:56.430 [debug] QUERY OK source="settings" db=1.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.432 [info] Sent 200 in 11ms 12:29:56.432 [info] Sent 200 in 21ms 12:29:56.441 [info] GET /sources/3/media/198180 12:29:56.442 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "198180", "source_id" => "3"} Pipelines: [:browser] 12:29:56.443 [debug] QUERY OK source="media_items" db=0.5ms idle=16.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" = ?) [198180] 12:29:56.444 [debug] QUERY OK source="sources" db=1.2ms idle=16.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 12:29:56.444 [debug] QUERY OK source="tasks" db=1.4ms idle=16.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" [198180] 12:29:56.445 [debug] QUERY OK source="settings" db=0.6ms idle=16.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.446 [debug] QUERY OK source="settings" db=0.4ms idle=15.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.447 [debug] QUERY OK source="settings" db=0.6ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.449 [debug] QUERY OK source="media_profiles" db=0.7ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.450 [info] Sent 200 in 8ms 12:29:56.486 [info] GET /sources/5/media/256067/edit 12:29:56.486 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "256067", "source_id" => "5"} Pipelines: [:browser] 12:29:56.487 [debug] QUERY OK source="media_items" db=0.7ms idle=42.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [256067] 12:29:56.488 [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 [] 12:29:56.489 [debug] QUERY OK source="settings" db=0.8ms idle=42.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.490 [debug] QUERY OK source="settings" db=0.5ms 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 [] 12:29:56.492 [info] Sent 200 in 5ms 12:29:56.504 [info] GET /sources/5/media/256067 12:29:56.504 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256067", "prevent_download" => "true", "source_id" => "5"} Pipelines: [:browser] 12:29:56.505 [debug] QUERY OK source="media_items" db=0.4ms idle=55.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" = ?) [256067] 12:29:56.505 [info] GET /sources/5/media/256067/force_download 12:29:56.506 [debug] QUERY OK source="tasks" db=0.6ms queue=0.1ms idle=17.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" [256067] 12:29:56.506 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=16.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:56.507 [debug] QUERY OK source="settings" db=0.6ms queue=0.9ms idle=16.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.508 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=16.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6565, 6583] 12:29:56.509 [debug] QUERY OK source="settings" db=1.3ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.509 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:56.510 [debug] QUERY OK source="settings" db=0.8ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.511 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.512 [debug] QUERY OK source="settings" db=0.5ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.514 [debug] QUERY OK source="media_profiles" db=0.6ms idle=5.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:56.509 [error] #PID<0.556394.0> running PinchflatWeb.Endpoint (connection #PID<0.556385.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/media/256067/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/5/media/256067/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556385.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/256067/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36034}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a1d6eaa97-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556394.0>, params: %{}, path_info: ["sources", "5", "media", "256067", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea00a1d6eaa97-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 104.22.14.64"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.14.64"} ], request_path: "/sources/5/media/256067/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9Kaidz7mcCVzQAM1vi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556385.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/256067/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36034}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a1d6eaa97-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, 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: " (truncated) 12:29:56.516 [info] Sent 200 in 12ms 12:29:56.522 [info] GET /media/55271ef5-34d4-4198-a53c-657597e555bc/stream 12:29:56.522 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "55271ef5-34d4-4198-a53c-657597e555bc", "v" => "1792202422"} Pipelines: [:maybe_basic_auth] 12:29:56.523 [debug] QUERY OK source="media_items" db=0.7ms idle=13.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" = ?) ["55271ef5-34d4-4198-a53c-657597e555bc"] 12:29:56.524 [debug] Invalid range request for media item: 55271ef5-34d4-4198-a53c-657597e555bc - serving full file 12:29:56.524 [info] Sent 200 in 2ms 12:29:56.550 [info] GET /sources/5/sync_files_on_disk 12:29:56.551 [info] GET /sources/5/force_download_pending 12:29:56.551 [debug] QUERY OK source="settings" db=0.6ms idle=40.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.551 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=39.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.552 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=38.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.552 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:56.552 [debug] QUERY OK source="settings" db=0.4ms idle=37.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.552 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:56.552 [error] #PID<0.556399.0> running PinchflatWeb.Endpoint (connection #PID<0.556385.0>, stream id 3) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/sync_files_on_disk ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556385.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36034}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a7c92121b-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556399.0>, params: %{}, path_info: ["sources", "5", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea00a7c92121b-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 104.22.14.64"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.14.64"} ], request_path: "/sources/5/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KaioagLGf5JMAAaVE"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556385.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36034}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a7c92121b-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, 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/5/sync_files_on_disk (Pinchf (truncated) 12:29:56.553 [error] #PID<0.556400.0> running PinchflatWeb.Endpoint (connection #PID<0.556315.0>, stream id 6) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/force_download_pending ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556315.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36006}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a78a78480-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556400.0>, params: %{}, path_info: ["sources", "5", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea00a78a78480-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 104.22.14.64"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.14.64"} ], request_path: "/sources/5/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9Kaioqcf7KJ-gABpDD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556315.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36006}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a78a78480-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/fo (truncated) 12:29:56.559 [info] GET /sources/5/media/234181/edit 12:29:56.559 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "234181", "source_id" => "5"} Pipelines: [:browser] 12:29:56.559 [debug] QUERY OK source="media_items" db=0.3ms idle=36.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" = ?) [234181] 12:29:56.560 [debug] QUERY OK source="settings" db=0.2ms idle=8.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.560 [info] GET /sources/new 12:29:56.560 [debug] QUERY OK source="settings" db=0.2ms idle=8.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.560 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "5"} Pipelines: [:browser] 12:29:56.561 [debug] QUERY OK source="settings" db=0.4ms idle=9.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.561 [info] GET /sources/5/force_metadata_refresh 12:29:56.561 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=8.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:29:56.563 [info] Sent 200 in 4ms 12:29:56.563 [info] GET /sources/5/force_redownload 12:29:56.564 [debug] QUERY OK source="settings" db=1.7ms queue=0.4ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.565 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.565 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.6ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:29:56.565 [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 [] 12:29:56.565 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:56.566 [debug] QUERY OK source="settings" db=0.6ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.568 [debug] QUERY OK source="settings" db=2.5ms queue=0.3ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.568 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:56.569 [debug] QUERY OK source="settings" db=1.5ms queue=0.9ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.570 [debug] QUERY OK source="settings" db=0.9ms queue=0.7ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.572 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=6.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.565 [error] #PID<0.556403.0> running PinchflatWeb.Endpoint (connection #PID<0.556320.0>, stream id 13) terminated Server: content.andreas-larsen.dk: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.556320.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36020}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a7b4fa5bb-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556403.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 => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea00a7b4fa5bb-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 104.22.14.64"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.14.64"} ], 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", "GN9KairMZM_KHzkABpDj"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556320.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36020}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a7b4fa5bb-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5 (truncated) 12:29:56.574 [debug] QUERY OK source="settings" db=0.8ms idle=7.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.577 [info] Sent 200 in 16ms 12:29:56.569 [error] #PID<0.556404.0> running PinchflatWeb.Endpoint (connection #PID<0.556316.0>, stream id 3) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556316.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36016}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a7ddbae27-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556404.0>, params: %{}, path_info: ["sources", "5", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea00a7ddbae27-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 104.22.14.64"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.14.64"} ], request_path: "/sources/5/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KairpaM0Zx9sAAaWk"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556316.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36016}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a7ddbae27-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 104.22.14.64", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.14.64" }, 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/5/force_redownload (PinchflatWeb.Router) (truncated) 12:29:56.579 [info] GET /sources/5/force_index 12:29:56.580 [debug] QUERY OK source="settings" db=0.5ms idle=11.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.582 [debug] QUERY OK source="settings" db=0.9ms queue=0.2ms idle=11.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.582 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:56.582 [error] #PID<0.556405.0> running PinchflatWeb.Endpoint (connection #PID<0.556316.0>, stream id 4) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556316.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36016}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a7d268fa3-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 172.68.54.120", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.68.54.120" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556405.0>, params: %{}, path_info: ["sources", "5", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea00a7d268fa3-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 172.68.54.120"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.68.54.120"} ], request_path: "/sources/5/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KaivfBrPGN8sAM1wi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556316.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36016}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00a7d268fa3-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 172.68.54.120", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.68.54.120" }, 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/5/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ (truncated) 12:29:56.608 [info] GET /sources/5/media/251079/force_download 12:29:56.609 [debug] QUERY OK source="settings" db=0.5ms idle=37.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.609 [debug] QUERY OK source="settings" db=0.2ms idle=37.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:56.609 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:56.610 [error] #PID<0.556406.0> running PinchflatWeb.Endpoint (connection #PID<0.556316.0>, stream id 5) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/media/251079/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/5/media/251079/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556316.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/251079/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36016}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00abd6cda66-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 172.68.54.120", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.68.54.120" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556406.0>, params: %{}, path_info: ["sources", "5", "media", "251079", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc" }, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "103.196.9.137"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea00abd6cda66-BOS"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc"}, {"host", "content.andreas-larsen.dk"}, {"sec-ch-ua", "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111"}, {"sec-fetch-mode", "navigate"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "103.196.9.137, 172.68.54.120"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.68.54.120"} ], request_path: "/sources/5/media/251079/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9Kai2WCxzWmwgAAaXE"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556316.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/251079/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 36016}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, br", "accept-language" => "en-US,en;q=0.9", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "103.196.9.137", "cf-ipcountry" => "US", "cf-ray" => "a4bea00abd6cda66-BOS", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYaG9jRFpJNk0xNmRabjJsZTVjeWFQRFJR.fI1Bv3L0Grxm55hYfWl_a_cTVHYSuQkx5lMOR8d4wtc", "host" => "content.andreas-larsen.dk", "sec-ch-ua" => "Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111", "sec-fetch-mode" => "navigate", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "103.196.9.137, 172.68.54.120", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.68.54.120" }, 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, mess (truncated) 12:30:00.103 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:30:01.210 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:30:32.222 [info] {"source":"oban","duration":756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:31:01.115 [info] {"source":"oban","duration":246,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:31:02.223 [info] {"source":"oban","duration":769,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:31:32.224 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:31:36.152 [info] GET /sitemap.xml 12:31:36.152 [debug] QUERY OK source="settings" db=0.1ms idle=715.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:31:36.153 [debug] QUERY OK source="settings" db=0.2ms idle=716.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:31:36.153 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:31:36.153 [error] #PID<0.556416.0> running PinchflatWeb.Endpoint (connection #PID<0.556415.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556415.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 57186}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bea270db93610f-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556416.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bea270db93610f-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KgVrW_R6e53QAQf4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556415.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 57186}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bea270db93610f-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556415.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 57186}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bea270db93610f-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556416.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, (truncated) 12:32:00.116 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:32:02.225 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:32:14.567 [info] GET /.env.example 12:32:14.568 [debug] QUERY OK source="settings" db=0.2ms idle=1131.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:32:14.568 [debug] QUERY OK source="settings" db=0.3ms idle=1131.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:32:14.568 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:32:14.569 [error] #PID<0.556421.0> running PinchflatWeb.Endpoint (connection #PID<0.556420.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /.env.example ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556420.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42430}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "185.90.60.226", "cf-ipcountry" => "FI", "cf-ray" => "a4bea3628c050447-ARN", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604.", "x-forwarded-for" => "185.90.60.226, 104.22.219.70", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.219.70" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556421.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "185.90.60.226"}, {"cf-ipcountry", "FI"}, {"cf-ray", "a4bea3628c050447-ARN"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604."}, {"x-forwarded-for", "185.90.60.226, 104.22.219.70"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.219.70"} ], request_path: "/.env.example", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KikyW52UJ3R8AM1yC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556420.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42430}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "185.90.60.226", "cf-ipcountry" => "FI", "cf-ray" => "a4bea3628c050447-ARN", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604.", "x-forwarded-for" => "185.90.60.226, 104.22.219.70", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.219.70" }, 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 /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556420.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42430}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "185.90.60.226", "cf-ipcountry" => "FI", "cf-ray" => "a4bea3628c050447-ARN", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604.", "x-forwarded-for" => "185.90.60.226, 104.22.219.70", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.219.70" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", (truncated) 12:32:14.766 [info] GET /.env 12:32:14.766 [debug] QUERY OK source="settings" db=0.1ms idle=1330.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:32:14.767 [debug] QUERY OK source="settings" db=0.1ms idle=1260.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:32:14.767 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:32:14.767 [error] #PID<0.556422.0> running PinchflatWeb.Endpoint (connection #PID<0.556420.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556420.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42430}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "185.90.60.226", "cf-ipcountry" => "FI", "cf-ray" => "a4bea3643d6f9a18-ARN", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604.", "x-forwarded-for" => "185.90.60.226, 104.22.219.70", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.219.70" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556422.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "185.90.60.226"}, {"cf-ipcountry", "FI"}, {"cf-ray", "a4bea3643d6f9a18-ARN"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604."}, {"x-forwarded-for", "185.90.60.226, 104.22.219.70"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.22.219.70"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KilhtAKg4Ad0AM1yi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556420.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42430}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "185.90.60.226", "cf-ipcountry" => "FI", "cf-ray" => "a4bea3643d6f9a18-ARN", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604.", "x-forwarded-for" => "185.90.60.226, 104.22.219.70", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.219.70" }, 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 / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556420.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 42430}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "185.90.60.226", "cf-ipcountry" => "FI", "cf-ray" => "a4bea3643d6f9a18-ARN", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604.", "x-forwarded-for" => "185.90.60.226, 104.22.219.70", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.22.219.70" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556422.0>, params: %{}, (truncated) 12:32:32.226 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:33:00.117 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:33:02.227 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:33:32.228 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:34:00.118 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:34:02.229 [info] {"source":"oban","duration":815,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:34:15.074 [info] GET /.well-known/ucp 12:34:15.075 [debug] QUERY OK source="settings" db=0.3ms idle=1638.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:34:15.075 [debug] QUERY OK source="settings" db=0.4ms idle=1638.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:34:15.076 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:34:15.076 [error] #PID<0.556435.0> running PinchflatWeb.Endpoint (connection #PID<0.556434.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /.well-known/ucp ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.well-known/ucp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556434.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 41396}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4bea653298ad0f4-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556435.0>, params: %{}, path_info: [".well-known", "ucp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "131.222.130.244"}, {"cf-ipcountry", "TR"}, {"cf-ray", "a4bea653298ad0f4-SOF"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)"}, {"x-forwarded-for", "131.222.130.244, 162.158.210.222"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.210.222"} ], request_path: "/.well-known/ucp", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9KpltdIe3nMYsAQf5h"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556434.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 41396}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4bea653298ad0f4-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, 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 /.well-known/ucp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556434.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 41396}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4bea653298ad0f4-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556435.0>, params: %{}, path_info: [".well-known", "ucp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch (truncated) 12:34:32.230 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:35:00.119 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:35:02.231 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:35:32.232 [info] {"source":"oban","duration":764,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:36:00.121 [info] {"source":"oban","duration":851,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:36:02.233 [info] {"source":"oban","duration":1074,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:36:32.235 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:37:00.122 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:37:02.236 [info] {"source":"oban","duration":774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:37:32.237 [info] {"source":"oban","duration":744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:38:00.123 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:38:02.238 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:38:32.239 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:39:00.124 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:39:02.240 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:39:32.241 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:40:00.125 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:40:02.242 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:40:32.243 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:41:00.126 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:41:02.244 [info] {"source":"oban","duration":754,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:41:32.245 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:42:00.127 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:42:02.246 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:42:32.247 [info] {"source":"oban","duration":605,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:43:00.128 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:43:02.247 [info] {"source":"oban","duration":470,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:43:32.248 [info] {"source":"oban","duration":479,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:44:00.129 [info] {"source":"oban","duration":232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:44:02.250 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:44:32.251 [info] {"source":"oban","duration":778,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:45:00.130 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:45:02.253 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:45:32.254 [info] {"source":"oban","duration":788,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:46:00.131 [info] {"source":"oban","duration":210,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:46:02.255 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:46:32.256 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:47:00.132 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:47:02.257 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:47:32.258 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:48:00.133 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:48:02.259 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:48:32.260 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:49:00.134 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:49:02.261 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:49:32.262 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:50:00.135 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:50:02.263 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:50:32.264 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:51:00.136 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:51:02.265 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:51:32.266 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:52:00.137 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:52:02.267 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:52:32.268 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:53:00.138 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:53:02.269 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:53:32.270 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:54:00.140 [info] {"source":"oban","duration":464,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:54:02.271 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:54:32.272 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:55:00.140 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:55:02.273 [info] {"source":"oban","duration":743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:55:32.274 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:56:00.141 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:56:02.275 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:56:32.276 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:57:00.142 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:57:02.277 [info] {"source":"oban","duration":603,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:57:32.278 [info] {"source":"oban","duration":581,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:58:00.143 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:58:02.279 [info] {"source":"oban","duration":752,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:58:32.280 [info] {"source":"oban","duration":646,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:59:00.144 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:59:02.281 [info] {"source":"oban","duration":800,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 12:59:32.282 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:00:00.175 [info] {"source":"oban","duration":399,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:00:02.283 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:00:32.284 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:01:00.176 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:01:02.285 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:01:32.286 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:02:00.177 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:02:02.287 [info] {"source":"oban","duration":716,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:02:32.288 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:03:00.178 [info] {"source":"oban","duration":230,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:03:02.289 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:03:32.290 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:04:00.179 [info] {"source":"oban","duration":235,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:04:02.291 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:04:15.040 [info] GET /.well-known/ucp 13:04:15.041 [debug] QUERY OK source="settings" db=0.1ms idle=1582.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:04:15.041 [debug] QUERY OK source="settings" db=0.1ms idle=1582.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:04:15.041 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 13:04:15.042 [error] #PID<0.556602.0> running PinchflatWeb.Endpoint (connection #PID<0.556601.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /.well-known/ucp ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.well-known/ucp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556601.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 40612}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4bed2451bbddcbb-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556602.0>, params: %{}, path_info: [".well-known", "ucp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "131.222.130.244"}, {"cf-ipcountry", "TR"}, {"cf-ray", "a4bed2451bbddcbb-SOF"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)"}, {"x-forwarded-for", "131.222.130.244, 162.158.210.222"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "162.158.210.222"} ], request_path: "/.well-known/ucp", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9MSXG2jJ22psgAQgMh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556601.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 40612}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4bed2451bbddcbb-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, 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 /.well-known/ucp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556601.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/ucp", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 40612}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "131.222.130.244", "cf-ipcountry" => "TR", "cf-ray" => "a4bed2451bbddcbb-SOF", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "RoasanBot/1.0 (+https://roasan.com/bot; bots@roasan.com)", "x-forwarded-for" => "131.222.130.244, 162.158.210.222", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "162.158.210.222" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556602.0>, params: %{}, path_info: [".well-known", "ucp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch (truncated) 13:04:32.292 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:05:00.180 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:05:02.293 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:05:32.294 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:05:39.700 [info] GET / 13:05:39.700 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 13:05:39.700 [debug] QUERY OK source="settings" db=0.1ms idle=242.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:05:39.701 [debug] QUERY OK source="media_profiles" db=0.1ms idle=242.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 13:05:39.701 [debug] QUERY OK source="sources" db=0.1ms idle=242.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 13:05:39.704 [debug] QUERY OK source="media_items" db=2.6ms idle=242.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:05:39.704 [debug] QUERY OK source="media_items" db=0.2ms idle=34.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:05:39.705 [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 [] 13:05:39.705 [debug] QUERY OK source="settings" db=0.0ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:05:39.705 [debug] QUERY OK source="settings" db=0.0ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:05:39.706 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 13:05:39.707 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:05:39.708 [debug] QUERY OK source="media_items" db=0.3ms idle=2.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:05:39.708 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 13:05:39.714 [debug] QUERY OK source="media_items" db=3.6ms idle=5.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 13:05:39.717 [debug] QUERY OK source="media_items" db=2.0ms queue=0.1ms idle=8.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:05:39.718 [info] Sent 200 in 18ms 13:06:00.181 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:06:02.295 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:06:32.296 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:07:00.182 [info] {"source":"oban","duration":306,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:07:02.297 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:07:32.298 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:08:00.183 [info] {"source":"oban","duration":249,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:08:02.299 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:08:32.300 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:09:00.184 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:09:02.301 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:09:32.302 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:09:47.896 [info] GET / 13:09:47.896 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 13:09:47.896 [debug] QUERY OK source="settings" db=0.1ms idle=972.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:09:47.897 [debug] QUERY OK source="media_profiles" db=0.0ms idle=436.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 13:09:47.897 [debug] QUERY OK source="sources" db=0.0ms idle=436.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 13:09:47.898 [debug] QUERY OK source="media_items" db=0.5ms idle=436.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:09:47.898 [debug] QUERY OK source="media_items" db=0.2ms idle=437.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:09:47.898 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:09:47.899 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:09:47.899 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:09:47.900 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 13:09:47.901 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:09:47.901 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:09:47.902 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 13:09:47.906 [debug] QUERY OK source="media_items" db=1.3ms idle=5.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 13:09:47.908 [debug] QUERY OK source="media_items" db=1.6ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:09:47.909 [info] Sent 200 in 13ms 13:10:00.185 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:10:02.303 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:10:32.304 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:11:00.186 [info] {"source":"oban","duration":246,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:11:02.305 [info] {"source":"oban","duration":776,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:11:32.306 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:12:00.187 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:12:02.307 [info] {"source":"oban","duration":787,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:12:32.308 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:13:00.188 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:13:02.309 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:13:32.310 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:14:00.189 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:14:02.311 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:14:32.312 [info] {"source":"oban","duration":785,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:15:00.190 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:15:02.313 [info] {"source":"oban","duration":505,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:15:32.314 [info] {"source":"oban","duration":517,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:16:00.191 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:16:02.315 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:16:32.316 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:17:00.192 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:17:02.317 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:17:32.318 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:18:00.193 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:18:02.319 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:18:32.320 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:19:00.194 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:19:02.321 [info] {"source":"oban","duration":886,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:19:32.323 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:20:00.195 [info] {"source":"oban","duration":232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:20:02.324 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:20:32.325 [info] {"source":"oban","duration":749,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:20:44.675 [info] {"args":{"id":5},"id":6577,"meta":{},"system_time":1792236044675674149,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 13:20:44.676 [debug] QUERY OK source="sources" db=0.6ms idle=1215.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:44.677 [debug] QUERY OK source="settings" db=0.6ms idle=1216.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:44.681 [debug] QUERY OK source="media_items" db=3.5ms idle=1010.5ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [5] 13:20:44.681 [debug] QUERY OK source="media_items" db=0.3ms idle=12.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 13:20:44.682 [debug] QUERY OK source="media_profiles" db=0.3ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:44.683 [debug] QUERY OK source="settings" db=0.6ms 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 [] 13:20:44.683 [debug] QUERY OK source="settings" db=0.3ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:44.689 [debug] QUERY OK source="media_items" db=4.2ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [5] 13:20:44.691 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 13:20:44.691 [debug] Current batch of media processed. Will check again in 1000ms 13:20:44.692 [debug] QUERY OK source="settings" db=0.2ms idle=9.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:44.692 [debug] QUERY OK source="settings" db=0.1ms idle=9.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:44.692 [debug] QUERY OK source="settings" db=0.1ms idle=9.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:44.693 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/techlinked --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/d4/b1/d4b1dae5563d83e4379460d68bcaaf56b9983954fe101f81373ebe4e4c643b2d.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/81/e9/81e9f310190fe76c2dd1408d49ff36200341d096af05333ccdb2fa168a7dc431.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 13:20:45.692 [debug] Current batch of media processed. Will check again in 1000ms 13:20:46.693 [debug] Current batch of media processed. Will check again in 1000ms 13:20:47.694 [debug] Current batch of media processed. Will check again in 1000ms 13:20:48.695 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/v0Q8X\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Tesla’s new Roadster\n2:27 Zero-click spyware delivered through ads\n4:21 Nvidia RTX Spark laptops\n6:43 QUICK BITS INTRO\n6:53 Power to the Players Act\n7:44 MapQuest maps surveillance cameras\n8:33 Ledger wallets sold with spy chips\n9:18 Meta’s Muse Spark\n10:24 Danfoss refrigeration hack\n11:17 Credits", "duration" => 711, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e101700 - WTF TESLA WHY.mkv", "id" => "AGc6cpcMRVQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AGc6cpcMRVQ", "playlist_index" => 1, "timestamp" => 1792201720, "title" => "WTF TESLA WHY", "upload_date" => "20261017"} 13:20:48.696 [debug] QUERY OK source="sources" db=0.3ms idle=235.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:20:48.696 [debug] QUERY OK source="sources" db=0.1ms idle=236.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:48.700 [debug] QUERY OK source="media_items" db=3.5ms idle=236.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-17 01:48:40Z], 5] 13:20:48.702 [debug] QUERY OK source="media_items" db=1.6ms idle=240.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/v0Q8X\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Tesla’s new Roadster\n2:27 Zero-click spyware delivered through ads\n4:21 Nvidia RTX Spark laptops\n6:43 QUICK BITS INTRO\n6:53 Power to the Players Act\n7:44 MapQuest maps surveillance cameras\n8:33 Ledger wallets sold with spy chips\n9:18 Meta’s Muse Spark\n10:24 Danfoss refrigeration hack\n11:17 Credits", "WTF TESLA WHY", "d045f21c-9a95-446c-9762-6a9cab129ded", "AGc6cpcMRVQ", false, 711, false, "https://www.youtube.com/watch?v=AGc6cpcMRVQ", 1, "/downloads/shows/TechLinked/Season 2026/s2026e101700 - WTF TESLA WHY.mkv", false, false, 5, [], 99, ~U[2026-10-17 01:48:40Z], ~U[2026-10-17 11:20:48Z], ~U[2026-10-17 11:20:48Z], "Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/v0Q8X\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Tesla’s new Roadster\n2:27 Zero-click spyware delivered through ads\n4:21 Nvidia RTX Spark laptops\n6:43 QUICK BITS INTRO\n6:53 Power to the Players Act\n7:44 MapQuest maps surveillance cameras\n8:33 Ledger wallets sold with spy chips\n9:18 Meta’s Muse Spark\n10:24 Danfoss refrigeration hack\n11:17 Credits", "WTF TESLA WHY", "AGc6cpcMRVQ", 711, false, "https://www.youtube.com/watch?v=AGc6cpcMRVQ", "/downloads/shows/TechLinked/Season 2026/s2026e101700 - WTF TESLA WHY.mkv", false, 5, ~U[2026-10-17 01:48:40Z]] 13:20:48.703 [debug] QUERY OK source="sources" db=0.5ms idle=29.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:48.704 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:48.704 [debug] QUERY OK source="media_items" db=0.2ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [257247] 13:20:48.704 [info] Kicking off download for media item #257247 (AGc6cpcMRVQ) 13:20:48.706 [debug] QUERY OK source="tasks" db=0.1ms idle=2.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [6587, 257247, ~U[2026-10-17 11:20:48Z], ~U[2026-10-17 11:20:48Z]] 13:20:48.706 [debug] Current batch of media processed. Will check again in 1000ms 13:20:48.713 [info] {"args":{"id":257247},"id":6587,"meta":{},"system_time":1792236048713217549,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 13:20:48.713 [debug] QUERY OK source="media_items" db=0.1ms idle=8.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [257247] 13:20:48.713 [info] User scripts lifecyle file either not present or is empty. Skipping. 13:20:48.714 [debug] QUERY OK source="sources" db=0.2ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:48.714 [debug] QUERY OK source="media_profiles" db=0.1ms idle=8.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:48.715 [debug] QUERY OK source="media_items" db=0.2ms idle=8.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [257247] 13:20:48.716 [debug] QUERY OK source="media_metadata" db=0.5ms idle=2.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [257247] 13:20:48.716 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:48.717 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:48.717 [debug] QUERY OK source="settings" db=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:48.717 [debug] Running yt-dlp command for action: get_downloadable_status 13:20:48.718 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:48.718 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:48.718 [debug] QUERY OK source="settings" db=0.0ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:48.719 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AGc6cpcMRVQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/11/bd/11bd04a3206161d3b26e0d8cf0bcde54d61d973e2e922a974cf74fe31d4c63ae.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 13:20:49.707 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Minimal, Functional, and Pocketable AF. Get 25% off Ohsnap accessories using our link! http://ohsnap.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/DKSm1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple’s Home View smart home hub\n1:09 Nvidia reportedly halting RTX 5090 production\n2:19 OpenAI engineer arrested for bugging HQ\n4:48 QUICK BITS INTRO\n4:57 Palantir CTO’s AI smoking rant\n5:34 ESA targets Anbernic\n6:10 Fortnite coming to Linux\n6:41 Yandex data center strikes and bot traffic\n7:30 Russia cracks down on AI bear images\n8:08 Credits", "duration" => 510, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e101500 - Who is this even for?.mkv", "id" => "pmADTgizr_4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pmADTgizr_4", "playlist_index" => 2, "timestamp" => 1792027156, "title" => "Who is this even for?", "upload_date" => "20261015"} 13:20:49.708 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=990.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:20:49.709 [debug] QUERY OK source="sources" db=0.1ms idle=990.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:49.713 [debug] QUERY OK source="media_items" db=3.8ms idle=990.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-15 01:19:16Z], 5] 13:20:49.715 [debug] QUERY OK source="media_items" db=1.3ms idle=994.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Minimal, Functional, and Pocketable AF. Get 25% off Ohsnap accessories using our link! http://ohsnap.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/DKSm1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple’s Home View smart home hub\n1:09 Nvidia reportedly halting RTX 5090 production\n2:19 OpenAI engineer arrested for bugging HQ\n4:48 QUICK BITS INTRO\n4:57 Palantir CTO’s AI smoking rant\n5:34 ESA targets Anbernic\n6:10 Fortnite coming to Linux\n6:41 Yandex data center strikes and bot traffic\n7:30 Russia cracks down on AI bear images\n8:08 Credits", "Who is this even for?", "8717f616-37a0-4ebb-8890-d0ba80de883d", "pmADTgizr_4", false, 510, false, "https://www.youtube.com/watch?v=pmADTgizr_4", 2, "/downloads/shows/TechLinked/Season 2026/s2026e101500 - Who is this even for?.mkv", false, false, 5, [], 98, ~U[2026-10-15 01:19:16Z], ~U[2026-10-17 11:20:49Z], ~U[2026-10-17 11:20:49Z], "Minimal, Functional, and Pocketable AF. Get 25% off Ohsnap accessories using our link! http://ohsnap.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/DKSm1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple’s Home View smart home hub\n1:09 Nvidia reportedly halting RTX 5090 production\n2:19 OpenAI engineer arrested for bugging HQ\n4:48 QUICK BITS INTRO\n4:57 Palantir CTO’s AI smoking rant\n5:34 ESA targets Anbernic\n6:10 Fortnite coming to Linux\n6:41 Yandex data center strikes and bot traffic\n7:30 Russia cracks down on AI bear images\n8:08 Credits", "Who is this even for?", "pmADTgizr_4", 510, false, "https://www.youtube.com/watch?v=pmADTgizr_4", "/downloads/shows/TechLinked/Season 2026/s2026e101500 - Who is this even for?.mkv", false, 5, ~U[2026-10-15 01:19:16Z]] 13:20:49.716 [debug] QUERY OK source="sources" db=0.6ms idle=40.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:49.716 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:49.717 [debug] QUERY OK source="media_items" db=0.4ms idle=7.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [256067] 13:20:49.717 [debug] Current batch of media processed. Will check again in 1000ms 13:20:50.718 [debug] Current batch of media processed. Will check again in 1000ms 13:20:51.719 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Thanks to UGREEN for sponsoring this video! Check out their Home Agent lineup and more below!\n\nUGREEN HomeAgent (Reserve from $50, Save 50% AND receive a Free Gift): https://ai.us.ugreen.com/IvysbJ\nUGREEN HomeAgent on Kickstarter: https://bit.ly/4zlFVZc\n\nNEWS SOURCES: https://lmg.gg/K5f0v\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 PS5 OS emulated on PC\n1:27 SpaceX buys RF spectrum\n2:52 PC shipments drop 20%\n5:34 QUICK BITS INTRO\n5:47 AI music streaming fraudster sentenced\n6:37 Homemade Nvidia macOS driver\n7:19 Sony hands VR patents to Meta\n7:59 MonsterCloud CEO secretly paid ransoms\n8:55 California stops human vs robot fights\n9:35 Credits", "duration" => 599, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e101000 - Oh Hell Yeah.mkv", "id" => "egHiQ7GVOFI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=egHiQ7GVOFI", "playlist_index" => 3, "timestamp" => 1791595150, "title" => "Oh Hell Yeah", "upload_date" => "20261010"} 13:20:51.720 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=259.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:20:51.721 [debug] QUERY OK source="sources" db=0.8ms idle=260.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:51.726 [debug] QUERY OK source="media_items" db=4.1ms idle=261.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-10 01:19:10Z], 5] 13:20:51.728 [debug] QUERY OK source="media_items" db=1.3ms idle=266.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to UGREEN for sponsoring this video! Check out their Home Agent lineup and more below!\n\nUGREEN HomeAgent (Reserve from $50, Save 50% AND receive a Free Gift): https://ai.us.ugreen.com/IvysbJ\nUGREEN HomeAgent on Kickstarter: https://bit.ly/4zlFVZc\n\nNEWS SOURCES: https://lmg.gg/K5f0v\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 PS5 OS emulated on PC\n1:27 SpaceX buys RF spectrum\n2:52 PC shipments drop 20%\n5:34 QUICK BITS INTRO\n5:47 AI music streaming fraudster sentenced\n6:37 Homemade Nvidia macOS driver\n7:19 Sony hands VR patents to Meta\n7:59 MonsterCloud CEO secretly paid ransoms\n8:55 California stops human vs robot fights\n9:35 Credits", "Oh Hell Yeah", "3b50bc8b-a5a6-4208-9b61-40ab7c1e2e32", "egHiQ7GVOFI", false, 599, false, "https://www.youtube.com/watch?v=egHiQ7GVOFI", 3, "/downloads/shows/TechLinked/Season 2026/s2026e101000 - Oh Hell Yeah.mkv", false, false, 5, [], 98, ~U[2026-10-10 01:19:10Z], ~U[2026-10-17 11:20:51Z], ~U[2026-10-17 11:20:51Z], "Thanks to UGREEN for sponsoring this video! Check out their Home Agent lineup and more below!\n\nUGREEN HomeAgent (Reserve from $50, Save 50% AND receive a Free Gift): https://ai.us.ugreen.com/IvysbJ\nUGREEN HomeAgent on Kickstarter: https://bit.ly/4zlFVZc\n\nNEWS SOURCES: https://lmg.gg/K5f0v\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 PS5 OS emulated on PC\n1:27 SpaceX buys RF spectrum\n2:52 PC shipments drop 20%\n5:34 QUICK BITS INTRO\n5:47 AI music streaming fraudster sentenced\n6:37 Homemade Nvidia macOS driver\n7:19 Sony hands VR patents to Meta\n7:59 MonsterCloud CEO secretly paid ransoms\n8:55 California stops human vs robot fights\n9:35 Credits", "Oh Hell Yeah", "egHiQ7GVOFI", 599, false, "https://www.youtube.com/watch?v=egHiQ7GVOFI", "/downloads/shows/TechLinked/Season 2026/s2026e101000 - Oh Hell Yeah.mkv", false, 5, ~U[2026-10-10 01:19:10Z]] 13:20:51.728 [debug] QUERY OK source="sources" db=0.3ms idle=49.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:51.729 [debug] QUERY OK source="media_profiles" db=0.3ms idle=8.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:51.730 [debug] QUERY OK source="media_items" db=0.3ms idle=8.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [253343] 13:20:51.730 [debug] Current batch of media processed. Will check again in 1000ms 13:20:51.780 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AGc6cpcMRVQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/11/bd/11bd04a3206161d3b26e0d8cf0bcde54d61d973e2e922a974cf74fe31d4c63ae.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 13:20:51.781 [debug] Running yt-dlp command for action: download 13:20:51.782 [debug] QUERY OK source="settings" db=0.9ms idle=55.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:51.782 [debug] QUERY OK source="settings" db=0.1ms idle=54.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:51.783 [debug] QUERY OK source="settings" db=0.3ms idle=53.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:20:51.783 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AGc6cpcMRVQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-subs --convert-subs srt --embed-subs --sub-langs en --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99 - %(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,interaction --output /downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99 - %(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a5/5e/a55e841ad62e1c805b011dc41d0282926ddfeee1243f1f7961c101be639d8dba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 13:20:52.731 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/nAOAy\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 White House AI executive order\n1:35 Microsoft Surface Laptop Ultra & RTX Spark\n3:22 Paramount Skydance closes Warner Bros. Discovery deal\n5:00 QUICK BITS INTRO\n7:02 States sue TP-Link\n7:52 Google SynthID detector goes public\n8:41 Finland halts Google data centers\n9:19 Brain-IT AI reconstructs what you see\n10:04 Amazon’s “About you” profile\n10:40 Credits", "duration" => 663, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e100800 - This is dumb.mkv", "id" => "1MS8uK--UXs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1MS8uK--UXs", "playlist_index" => 4, "timestamp" => 1791423594, "title" => "This is dumb", "upload_date" => "20261008"} 13:20:52.732 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1001.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:20:52.733 [debug] QUERY OK source="sources" db=0.3ms queue=0.5ms idle=950.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:52.737 [debug] QUERY OK source="media_items" db=3.8ms idle=951.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-08 01:39:54Z], 5] 13:20:52.739 [debug] QUERY OK source="media_items" db=1.0ms idle=954.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/nAOAy\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 White House AI executive order\n1:35 Microsoft Surface Laptop Ultra & RTX Spark\n3:22 Paramount Skydance closes Warner Bros. Discovery deal\n5:00 QUICK BITS INTRO\n7:02 States sue TP-Link\n7:52 Google SynthID detector goes public\n8:41 Finland halts Google data centers\n9:19 Brain-IT AI reconstructs what you see\n10:04 Amazon’s “About you” profile\n10:40 Credits", "This is dumb", "b27ec134-23a3-4c2c-9978-8dbe7d125e37", "1MS8uK--UXs", false, 663, false, "https://www.youtube.com/watch?v=1MS8uK--UXs", 4, "/downloads/shows/TechLinked/Season 2026/s2026e100800 - This is dumb.mkv", false, false, 5, [], 98, ~U[2026-10-08 01:39:54Z], ~U[2026-10-17 11:20:52Z], ~U[2026-10-17 11:20:52Z], "Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/nAOAy\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 White House AI executive order\n1:35 Microsoft Surface Laptop Ultra & RTX Spark\n3:22 Paramount Skydance closes Warner Bros. Discovery deal\n5:00 QUICK BITS INTRO\n7:02 States sue TP-Link\n7:52 Google SynthID detector goes public\n8:41 Finland halts Google data centers\n9:19 Brain-IT AI reconstructs what you see\n10:04 Amazon’s “About you” profile\n10:40 Credits", "This is dumb", "1MS8uK--UXs", 663, false, "https://www.youtube.com/watch?v=1MS8uK--UXs", "/downloads/shows/TechLinked/Season 2026/s2026e100800 - This is dumb.mkv", false, 5, ~U[2026-10-08 01:39:54Z]] 13:20:52.740 [debug] QUERY OK source="sources" db=0.7ms idle=59.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:52.741 [debug] QUERY OK source="media_profiles" db=0.7ms idle=8.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:52.742 [debug] QUERY OK source="media_items" db=0.5ms 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 [252167] 13:20:52.742 [debug] Current batch of media processed. Will check again in 1000ms 13:20:53.743 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/IdPz2\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Colorful's Chinese DDR5 RAM gets a price\n1:00 Judge tosses Flock evidence\n2:06 Used CPU came with a Valorant ban\n4:41 QUICK BITS INTRO\n4:52 Tool strips Apple Intelligence from macOS 27\n5:30 Google pauses OSS bug bounty over AI slop\n6:00 Windows 11 update crashes games\n6:31 Alexa won't stop singing\n7:16 Figure melts its old robots\n7:43 Credits", "duration" => 475, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e100600 - PLEASE HELP US.mkv", "id" => "mNbqeHU4Rpw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mNbqeHU4Rpw", "playlist_index" => 5, "timestamp" => 1791250876, "title" => "PLEASE HELP US", "upload_date" => "20261006"} 13:20:53.744 [debug] QUERY OK source="sources" db=0.2ms idle=1004.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:20:53.744 [debug] QUERY OK source="sources" db=0.1ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:53.748 [debug] QUERY OK source="media_items" db=3.5ms idle=1003.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-06 01:41:16Z], 5] 13:20:53.750 [debug] QUERY OK source="media_items" db=1.1ms idle=1006.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/IdPz2\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Colorful's Chinese DDR5 RAM gets a price\n1:00 Judge tosses Flock evidence\n2:06 Used CPU came with a Valorant ban\n4:41 QUICK BITS INTRO\n4:52 Tool strips Apple Intelligence from macOS 27\n5:30 Google pauses OSS bug bounty over AI slop\n6:00 Windows 11 update crashes games\n6:31 Alexa won't stop singing\n7:16 Figure melts its old robots\n7:43 Credits", "PLEASE HELP US", "46db364a-2478-4ffc-a9be-d9e5966ef0a9", "mNbqeHU4Rpw", false, 475, false, "https://www.youtube.com/watch?v=mNbqeHU4Rpw", 5, "/downloads/shows/TechLinked/Season 2026/s2026e100600 - PLEASE HELP US.mkv", false, false, 5, [], 98, ~U[2026-10-06 01:41:16Z], ~U[2026-10-17 11:20:53Z], ~U[2026-10-17 11:20:53Z], "Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/IdPz2\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Colorful's Chinese DDR5 RAM gets a price\n1:00 Judge tosses Flock evidence\n2:06 Used CPU came with a Valorant ban\n4:41 QUICK BITS INTRO\n4:52 Tool strips Apple Intelligence from macOS 27\n5:30 Google pauses OSS bug bounty over AI slop\n6:00 Windows 11 update crashes games\n6:31 Alexa won't stop singing\n7:16 Figure melts its old robots\n7:43 Credits", "PLEASE HELP US", "mNbqeHU4Rpw", 475, false, "https://www.youtube.com/watch?v=mNbqeHU4Rpw", "/downloads/shows/TechLinked/Season 2026/s2026e100600 - PLEASE HELP US.mkv", false, 5, ~U[2026-10-06 01:41:16Z]] 13:20:53.750 [debug] QUERY OK source="sources" db=0.1ms idle=68.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:53.751 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:53.751 [debug] QUERY OK source="media_items" db=0.2ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [251079] 13:20:53.751 [debug] Current batch of media processed. Will check again in 1000ms 13:20:54.752 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLOct26 to get started.\n\nNEWS SOURCES: https://lmg.gg/zhToC\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Reddit kills its API, RSS, and old Reddit access\n1:55 OpenAI DevDay and the Dots demo fail\n3:41 YouTube cracks down on Shorts slop\n6:10 QUICK BITS INTRO\n6:27 Amazon delivery driver smart glasses\n7:12 NYC click-to-cancel law\n7:56 Tokyo court protects a voice actor's voice\n8:53 RAM shortage price hikes\n9:48 Micro Center RTX 5090 ID checks\n10:38 Credits", "duration" => 666, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e100300 - What happened to Reddit.mkv", "id" => "fThppBugFXk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fThppBugFXk", "playlist_index" => 6, "timestamp" => 1790988672, "title" => "What happened to Reddit", "upload_date" => "20261003"} 13:20:54.753 [debug] QUERY OK source="sources" db=0.3ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:20:54.753 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:54.757 [debug] QUERY OK source="media_items" db=3.4ms idle=1003.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-03 00:51:12Z], 5] 13:20:54.761 [debug] QUERY OK source="media_items" db=2.8ms idle=1006.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLOct26 to get started.\n\nNEWS SOURCES: https://lmg.gg/zhToC\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Reddit kills its API, RSS, and old Reddit access\n1:55 OpenAI DevDay and the Dots demo fail\n3:41 YouTube cracks down on Shorts slop\n6:10 QUICK BITS INTRO\n6:27 Amazon delivery driver smart glasses\n7:12 NYC click-to-cancel law\n7:56 Tokyo court protects a voice actor's voice\n8:53 RAM shortage price hikes\n9:48 Micro Center RTX 5090 ID checks\n10:38 Credits", "What happened to Reddit", "7320abf5-5fa9-4d59-a91f-962131a1fc10", "fThppBugFXk", false, 666, false, "https://www.youtube.com/watch?v=fThppBugFXk", 6, "/downloads/shows/TechLinked/Season 2026/s2026e100300 - What happened to Reddit.mkv", false, false, 5, [], 98, ~U[2026-10-03 00:51:12Z], ~U[2026-10-17 11:20:54Z], ~U[2026-10-17 11:20:54Z], "If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLOct26 to get started.\n\nNEWS SOURCES: https://lmg.gg/zhToC\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Reddit kills its API, RSS, and old Reddit access\n1:55 OpenAI DevDay and the Dots demo fail\n3:41 YouTube cracks down on Shorts slop\n6:10 QUICK BITS INTRO\n6:27 Amazon delivery driver smart glasses\n7:12 NYC click-to-cancel law\n7:56 Tokyo court protects a voice actor's voice\n8:53 RAM shortage price hikes\n9:48 Micro Center RTX 5090 ID checks\n10:38 Credits", "What happened to Reddit", "fThppBugFXk", 666, false, "https://www.youtube.com/watch?v=fThppBugFXk", "/downloads/shows/TechLinked/Season 2026/s2026e100300 - What happened to Reddit.mkv", false, 5, ~U[2026-10-03 00:51:12Z]] 13:20:54.761 [debug] QUERY OK source="sources" db=0.2ms idle=77.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:54.762 [debug] QUERY OK source="media_profiles" db=0.1ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:54.762 [debug] QUERY OK source="media_items" db=0.2ms idle=8.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [249446] 13:20:54.762 [debug] Current batch of media processed. Will check again in 1000ms 13:20:55.763 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get started with Proton Drive for Free. Download the CLI or Build from Source: https://proton.me/drive/techlinked\n\nPre-built binaries are the fastest way to get started. Download the standalone `proton-drive` executable for the required platform: https://proton.me/download/drive/cli/index.html\n\nNEWS SOURCES: https://lmg.gg/cnwkc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 OpenAI agents probe government websites\n1:19 States take on Meta and TikTok\n2:51 Flock Safety targets camera map researcher\n5:11 QUICK BITS INTRO\n5:26 Apple loses $5.7B Taptic Engine case\n6:03 $1.7M solid gold mini PC\n6:44 Copilot contractors review disturbing prompts\n7:26 GPU thieves steal trailers full of sand\n8:06 Meta's AI agent botches Marketplace sale\n8:34 Credits", "duration" => 533, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e092900 - How Does This Keep Happening?.mkv", "id" => "W0F_ur5TiQw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=W0F_ur5TiQw", "playlist_index" => 7, "timestamp" => 1790658405, "title" => "How Does This Keep Happening?", "upload_date" => "20260929"} 13:20:55.764 [debug] QUERY OK source="sources" db=0.3ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:20:55.765 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:55.811 [debug] QUERY OK source="media_items" db=46.2ms idle=1003.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-29 05:06:45Z], 5] 13:20:55.818 [debug] QUERY OK source="media_items" db=6.0ms idle=1049.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get started with Proton Drive for Free. Download the CLI or Build from Source: https://proton.me/drive/techlinked\n\nPre-built binaries are the fastest way to get started. Download the standalone `proton-drive` executable for the required platform: https://proton.me/download/drive/cli/index.html\n\nNEWS SOURCES: https://lmg.gg/cnwkc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 OpenAI agents probe government websites\n1:19 States take on Meta and TikTok\n2:51 Flock Safety targets camera map researcher\n5:11 QUICK BITS INTRO\n5:26 Apple loses $5.7B Taptic Engine case\n6:03 $1.7M solid gold mini PC\n6:44 Copilot contractors review disturbing prompts\n7:26 GPU thieves steal trailers full of sand\n8:06 Meta's AI agent botches Marketplace sale\n8:34 Credits", "How Does This Keep Happening?", "94db6680-0d18-4754-b08d-005d8b248dc1", "W0F_ur5TiQw", false, 533, false, "https://www.youtube.com/watch?v=W0F_ur5TiQw", 7, "/downloads/shows/TechLinked/Season 2026/s2026e092900 - How Does This Keep Happening?.mkv", false, false, 5, [], 98, ~U[2026-09-29 05:06:45Z], ~U[2026-10-17 11:20:55Z], ~U[2026-10-17 11:20:55Z], "Get started with Proton Drive for Free. Download the CLI or Build from Source: https://proton.me/drive/techlinked\n\nPre-built binaries are the fastest way to get started. Download the standalone `proton-drive` executable for the required platform: https://proton.me/download/drive/cli/index.html\n\nNEWS SOURCES: https://lmg.gg/cnwkc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 OpenAI agents probe government websites\n1:19 States take on Meta and TikTok\n2:51 Flock Safety targets camera map researcher\n5:11 QUICK BITS INTRO\n5:26 Apple loses $5.7B Taptic Engine case\n6:03 $1.7M solid gold mini PC\n6:44 Copilot contractors review disturbing prompts\n7:26 GPU thieves steal trailers full of sand\n8:06 Meta's AI agent botches Marketplace sale\n8:34 Credits", "How Does This Keep Happening?", "W0F_ur5TiQw", 533, false, "https://www.youtube.com/watch?v=W0F_ur5TiQw", "/downloads/shows/TechLinked/Season 2026/s2026e092900 - How Does This Keep Happening?.mkv", false, 5, ~U[2026-09-29 05:06:45Z]] 13:20:55.819 [debug] QUERY OK source="sources" db=0.6ms idle=133.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:55.821 [debug] QUERY OK source="media_profiles" db=1.8ms idle=55.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] 13:20:55.824 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=57.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 [247192] 13:20:55.824 [debug] Current batch of media processed. Will check again in 1000ms 13:20:56.825 [debug] Current batch of media processed. Will check again in 1000ms 13:20:57.827 [debug] Current batch of media processed. Will check again in 1000ms 13:20:58.827 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Thanks to our sponsor Bitdefender! Try their powerful Scam Protection free for 90 days: https://bitdefend.me/90Linus\n\n#Bitdefender\n\nNEWS SOURCES: https://lmg.gg/qLjDJ\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Microsoft drops the Copilot+ PC name\n2:06 Meta Connect glasses and Muse security flaw\n3:40 Gemini makes phone calls for you\n5:58 QUICK BITS INTRO\n6:12 AMD radar chip turns up in China\n6:51 INMO Air 3 smart glasses recalled\n7:21 WiCi wireless eGPU\n7:57 AI stalker drone\n8:29 Kids hang out in NPR comments\n9:02 Credits", "duration" => 557, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e092600 - Anyway,.mkv", "id" => "-1OA3URMck4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-1OA3URMck4", "playlist_index" => 8, "timestamp" => 1790383229, "title" => "Anyway,", "upload_date" => "20260926"} 13:20:58.828 [debug] QUERY OK source="sources" db=0.4ms idle=1365.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:20:58.829 [debug] QUERY OK source="sources" db=0.6ms idle=1366.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:58.833 [debug] QUERY OK source="media_items" db=3.8ms queue=0.3ms idle=1367.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-26 00:40:29Z], 5] 13:20:58.835 [debug] QUERY OK source="media_items" db=1.1ms idle=1144.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to our sponsor Bitdefender! Try their powerful Scam Protection free for 90 days: https://bitdefend.me/90Linus\n\n#Bitdefender\n\nNEWS SOURCES: https://lmg.gg/qLjDJ\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Microsoft drops the Copilot+ PC name\n2:06 Meta Connect glasses and Muse security flaw\n3:40 Gemini makes phone calls for you\n5:58 QUICK BITS INTRO\n6:12 AMD radar chip turns up in China\n6:51 INMO Air 3 smart glasses recalled\n7:21 WiCi wireless eGPU\n7:57 AI stalker drone\n8:29 Kids hang out in NPR comments\n9:02 Credits", "Anyway,", "2bc6b9a0-1b23-450a-9248-bad0def46d5f", "-1OA3URMck4", false, 557, false, "https://www.youtube.com/watch?v=-1OA3URMck4", 8, "/downloads/shows/TechLinked/Season 2026/s2026e092600 - Anyway,.mkv", false, false, 5, [], 98, ~U[2026-09-26 00:40:29Z], ~U[2026-10-17 11:20:58Z], ~U[2026-10-17 11:20:58Z], "Thanks to our sponsor Bitdefender! Try their powerful Scam Protection free for 90 days: https://bitdefend.me/90Linus\n\n#Bitdefender\n\nNEWS SOURCES: https://lmg.gg/qLjDJ\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Microsoft drops the Copilot+ PC name\n2:06 Meta Connect glasses and Muse security flaw\n3:40 Gemini makes phone calls for you\n5:58 QUICK BITS INTRO\n6:12 AMD radar chip turns up in China\n6:51 INMO Air 3 smart glasses recalled\n7:21 WiCi wireless eGPU\n7:57 AI stalker drone\n8:29 Kids hang out in NPR comments\n9:02 Credits", "Anyway,", "-1OA3URMck4", 557, false, "https://www.youtube.com/watch?v=-1OA3URMck4", "/downloads/shows/TechLinked/Season 2026/s2026e092600 - Anyway,.mkv", false, 5, ~U[2026-09-26 00:40:29Z]] 13:20:58.836 [debug] QUERY OK source="sources" db=0.3ms idle=144.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:20:58.837 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:20:58.837 [debug] QUERY OK source="media_items" db=0.2ms idle=7.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [245569] 13:20:58.837 [debug] Current batch of media processed. Will check again in 1000ms 13:20:59.838 [debug] Current batch of media processed. Will check again in 1000ms 13:21:00.196 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:21:00.839 [debug] Current batch of media processed. Will check again in 1000ms 13:21:01.840 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev\n\nNEWS SOURCES: https://lmg.gg/ewrdI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Discord age verification goes live\n1:50 ShinyHunters claims FBI hack\n3:36 Mac mini SSD and iPhone 18 storage\n6:59 QUICK BITS INTRO\n7:07 Made on YouTube Gemini features\n8:02 Qualcomm Snapdragon 8 Elite Gen 6\n8:39 Waymo drives through farmers market\n9:35 China probes AI firms over Claude distillation\n10:20 Samsung update breaks Bespoke AI fridges", "duration" => 671, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e092400 - They’re Really Doing It….mkv", "id" => "vC5C2denOOM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vC5C2denOOM", "playlist_index" => 9, "timestamp" => 1790211384, "title" => "They’re Really Doing It…", "upload_date" => "20260924"} 13:21:01.841 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1378.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:01.842 [debug] QUERY OK source="sources" db=0.6ms idle=1379.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:01.847 [debug] QUERY OK source="media_items" db=4.6ms idle=1147.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-24 00:56:24Z], 5] 13:21:01.850 [debug] QUERY OK source="media_items" db=1.6ms idle=385.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev\n\nNEWS SOURCES: https://lmg.gg/ewrdI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Discord age verification goes live\n1:50 ShinyHunters claims FBI hack\n3:36 Mac mini SSD and iPhone 18 storage\n6:59 QUICK BITS INTRO\n7:07 Made on YouTube Gemini features\n8:02 Qualcomm Snapdragon 8 Elite Gen 6\n8:39 Waymo drives through farmers market\n9:35 China probes AI firms over Claude distillation\n10:20 Samsung update breaks Bespoke AI fridges", "They’re Really Doing It…", "db700da7-1d1f-4afb-9f4d-81e96ffac4d3", "vC5C2denOOM", false, 671, false, "https://www.youtube.com/watch?v=vC5C2denOOM", 9, "/downloads/shows/TechLinked/Season 2026/s2026e092400 - They’re Really Doing It….mkv", false, false, 5, [], 98, ~U[2026-09-24 00:56:24Z], ~U[2026-10-17 11:21:01Z], ~U[2026-10-17 11:21:01Z], "Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev\n\nNEWS SOURCES: https://lmg.gg/ewrdI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Discord age verification goes live\n1:50 ShinyHunters claims FBI hack\n3:36 Mac mini SSD and iPhone 18 storage\n6:59 QUICK BITS INTRO\n7:07 Made on YouTube Gemini features\n8:02 Qualcomm Snapdragon 8 Elite Gen 6\n8:39 Waymo drives through farmers market\n9:35 China probes AI firms over Claude distillation\n10:20 Samsung update breaks Bespoke AI fridges", "They’re Really Doing It…", "vC5C2denOOM", 671, false, "https://www.youtube.com/watch?v=vC5C2denOOM", "/downloads/shows/TechLinked/Season 2026/s2026e092400 - They’re Really Doing It….mkv", false, 5, ~U[2026-09-24 00:56:24Z]] 13:21:01.851 [debug] QUERY OK source="sources" db=0.7ms idle=152.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:01.852 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.2ms idle=10.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:01.855 [debug] QUERY OK source="media_items" db=1.0ms idle=11.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [244405] 13:21:01.855 [debug] Current batch of media processed. Will check again in 1000ms 13:21:02.329 [info] {"source":"oban","duration":3734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:21:02.856 [debug] Current batch of media processed. Will check again in 1000ms 13:21:03.857 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Thanks to Micro Center for sponsoring this video! Check them out below:\n\nShop Build. Upgrade. Save. Event: https://micro.center/4a6415\nShop Micro Center’s Clearance Event: https://micro.center/d99846\nSign Up for a FREE 128 gig Flash Drive at Micro Center’s Austin location: https://micro.center/f6886e\nVisit Micro Center News: https://micro.center/2e243d\n\nNEWS SOURCES: https://lmg.gg/FhgB5\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Googlebook laptops launch October 4\n1:27 macOS 27 Golden Gate breaks Mission Control\n2:34 AI hallucination nearly triggers ship boarding\n4:19 QUICK BITS INTRO\n4:36 High-end CD players are dying\n5:05 Meta's petabyte subsea cable\n5:33 Amazon blocks Meta's Muse agent\n6:07 Disney Plus \"ad-free\" plans still show ads\n6:37 Unitree Dex5-1 robot hand\n7:15 Credits", "duration" => 448, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e092200 - Android Laptops Are Here….mkv", "id" => "TnkCZmKeAbY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TnkCZmKeAbY", "playlist_index" => 10, "timestamp" => 1790037908, "title" => "Android Laptops Are Here…", "upload_date" => "20260922"} 13:21:03.858 [debug] QUERY OK source="sources" db=0.5ms idle=395.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:03.859 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=396.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:03.864 [debug] QUERY OK source="media_items" db=4.0ms idle=397.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-22 00:45:08Z], 5] 13:21:03.866 [debug] QUERY OK source="media_items" db=1.4ms idle=401.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to Micro Center for sponsoring this video! Check them out below:\n\nShop Build. Upgrade. Save. Event: https://micro.center/4a6415\nShop Micro Center’s Clearance Event: https://micro.center/d99846\nSign Up for a FREE 128 gig Flash Drive at Micro Center’s Austin location: https://micro.center/f6886e\nVisit Micro Center News: https://micro.center/2e243d\n\nNEWS SOURCES: https://lmg.gg/FhgB5\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Googlebook laptops launch October 4\n1:27 macOS 27 Golden Gate breaks Mission Control\n2:34 AI hallucination nearly triggers ship boarding\n4:19 QUICK BITS INTRO\n4:36 High-end CD players are dying\n5:05 Meta's petabyte subsea cable\n5:33 Amazon blocks Meta's Muse agent\n6:07 Disney Plus \"ad-free\" plans still show ads\n6:37 Unitree Dex5-1 robot hand\n7:15 Credits", "Android Laptops Are Here…", "13406f40-11b5-4de6-84be-a71c3c2e3274", "TnkCZmKeAbY", false, 448, false, "https://www.youtube.com/watch?v=TnkCZmKeAbY", 10, "/downloads/shows/TechLinked/Season 2026/s2026e092200 - Android Laptops Are Here….mkv", false, false, 5, [], 98, ~U[2026-09-22 00:45:08Z], ~U[2026-10-17 11:21:03Z], ~U[2026-10-17 11:21:03Z], "Thanks to Micro Center for sponsoring this video! Check them out below:\n\nShop Build. Upgrade. Save. Event: https://micro.center/4a6415\nShop Micro Center’s Clearance Event: https://micro.center/d99846\nSign Up for a FREE 128 gig Flash Drive at Micro Center’s Austin location: https://micro.center/f6886e\nVisit Micro Center News: https://micro.center/2e243d\n\nNEWS SOURCES: https://lmg.gg/FhgB5\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Googlebook laptops launch October 4\n1:27 macOS 27 Golden Gate breaks Mission Control\n2:34 AI hallucination nearly triggers ship boarding\n4:19 QUICK BITS INTRO\n4:36 High-end CD players are dying\n5:05 Meta's petabyte subsea cable\n5:33 Amazon blocks Meta's Muse agent\n6:07 Disney Plus \"ad-free\" plans still show ads\n6:37 Unitree Dex5-1 robot hand\n7:15 Credits", "Android Laptops Are Here…", "TnkCZmKeAbY", 448, false, "https://www.youtube.com/watch?v=TnkCZmKeAbY", "/downloads/shows/TechLinked/Season 2026/s2026e092200 - Android Laptops Are Here….mkv", false, 5, ~U[2026-09-22 00:45:08Z]] 13:21:03.867 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=165.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:03.868 [debug] QUERY OK source="media_profiles" db=0.6ms idle=8.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:03.869 [debug] QUERY OK source="media_items" db=0.6ms idle=8.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [243340] 13:21:03.869 [debug] Current batch of media processed. Will check again in 1000ms 13:21:04.869 [debug] Current batch of media processed. Will check again in 1000ms 13:21:05.451 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AGc6cpcMRVQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-subs --convert-subs srt --embed-subs --sub-langs en --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99 - %(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,interaction --output /downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99 - %(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a5/5e/a55e841ad62e1c805b011dc41d0282926ddfeee1243f1f7961c101be639d8dba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 13:21:05.488 [debug] Running yt-dlp command for action: download_thumbnail 13:21:05.491 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=788.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:21:05.492 [debug] QUERY OK source="settings" db=0.4ms idle=27.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:21:05.492 [debug] QUERY OK source="settings" db=0.3ms idle=28.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:21:05.493 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AGc6cpcMRVQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/257247/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a6/d0/a6d000a7f691831e5db9e37be5b3ff1839a45fbb63393daa5fcbce03940984ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 13:21:05.870 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Wherever today takes you, go comfortably with Vessi Weekend Chelsea—made for exploring, rain or shine. One pair. Countless adventures.\n\n✨ Grab 15% off your first pair here: https://vessi.com/techlinked\n• Free shipping • 30‑day returns • 1‑year warranty\n\nNEWS SOURCES: https://lmg.gg/1wZI0\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta One subscriptions\n1:30 Microsoft memo in the New York Times lawsuit\n3:01 AI slop songs on artists' Spotify pages\n4:36 QUICK BITS INTRO\n4:46 Piracy site blocking bill\n5:23 Nvidia chips still reaching China\n6:02 EU Kids Act\n6:36 AM radio bill passes the House\n7:27 Japan's airport clothing compressors\n7:52 Credits", "duration" => 488, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e091900 - Meta, Just Stop.mkv", "id" => "5Ob8xbPCOzM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5Ob8xbPCOzM", "playlist_index" => 11, "timestamp" => 1789778777, "title" => "Meta, Just Stop", "upload_date" => "20260919"} 13:21:05.871 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=407.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:05.872 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=380.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:05.876 [debug] QUERY OK source="media_items" db=3.9ms queue=0.2ms idle=380.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-19 00:46:17Z], 5] 13:21:05.879 [debug] QUERY OK source="media_items" db=1.3ms idle=384.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Wherever today takes you, go comfortably with Vessi Weekend Chelsea—made for exploring, rain or shine. One pair. Countless adventures.\n\n✨ Grab 15% off your first pair here: https://vessi.com/techlinked\n• Free shipping • 30‑day returns • 1‑year warranty\n\nNEWS SOURCES: https://lmg.gg/1wZI0\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta One subscriptions\n1:30 Microsoft memo in the New York Times lawsuit\n3:01 AI slop songs on artists' Spotify pages\n4:36 QUICK BITS INTRO\n4:46 Piracy site blocking bill\n5:23 Nvidia chips still reaching China\n6:02 EU Kids Act\n6:36 AM radio bill passes the House\n7:27 Japan's airport clothing compressors\n7:52 Credits", "Meta, Just Stop", "b16851b6-25b6-49b9-b8ff-04cbb53c924e", "5Ob8xbPCOzM", false, 488, false, "https://www.youtube.com/watch?v=5Ob8xbPCOzM", 11, "/downloads/shows/TechLinked/Season 2026/s2026e091900 - Meta, Just Stop.mkv", false, false, 5, [], 98, ~U[2026-09-19 00:46:17Z], ~U[2026-10-17 11:21:05Z], ~U[2026-10-17 11:21:05Z], "Wherever today takes you, go comfortably with Vessi Weekend Chelsea—made for exploring, rain or shine. One pair. Countless adventures.\n\n✨ Grab 15% off your first pair here: https://vessi.com/techlinked\n• Free shipping • 30‑day returns • 1‑year warranty\n\nNEWS SOURCES: https://lmg.gg/1wZI0\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta One subscriptions\n1:30 Microsoft memo in the New York Times lawsuit\n3:01 AI slop songs on artists' Spotify pages\n4:36 QUICK BITS INTRO\n4:46 Piracy site blocking bill\n5:23 Nvidia chips still reaching China\n6:02 EU Kids Act\n6:36 AM radio bill passes the House\n7:27 Japan's airport clothing compressors\n7:52 Credits", "Meta, Just Stop", "5Ob8xbPCOzM", 488, false, "https://www.youtube.com/watch?v=5Ob8xbPCOzM", "/downloads/shows/TechLinked/Season 2026/s2026e091900 - Meta, Just Stop.mkv", false, 5, ~U[2026-09-19 00:46:17Z]] 13:21:05.879 [debug] QUERY OK source="sources" db=0.4ms idle=174.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:05.880 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.3ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:05.881 [debug] QUERY OK source="media_items" db=0.4ms idle=8.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [241742] 13:21:05.881 [debug] Current batch of media processed. Will check again in 1000ms 13:21:06.882 [debug] Current batch of media processed. Will check again in 1000ms 13:21:07.883 [debug] Current batch of media processed. Will check again in 1000ms 13:21:08.684 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AGc6cpcMRVQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/257247/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a6/d0/a6d000a7f691831e5db9e37be5b3ff1839a45fbb63393daa5fcbce03940984ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 13:21:08.685 [debug] QUERY OK db=0.1ms idle=1222.7ms begin [] 13:21:08.686 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_filepath" = ?, "duration_seconds" = ?, "media_downloaded_at" = ?, "nfo_filepath" = ?, "predicted_media_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? ["/downloads/shows/TechLinked/Season 2026/s2026e101799 - WTF TESLA WHY.mp4", 670, ~U[2026-10-17 11:21:05Z], "/downloads/shows/TechLinked/Season 2026/s2026e101799 - WTF TESLA WHY.nfo", "/downloads/shows/TechLinked/Season 2026/s2026e101799 - WTF TESLA WHY.mkv", "/downloads/shows/TechLinked/Season 2026/s2026e101799 - WTF TESLA WHY-thumb.jpg", ~U[2026-10-17 11:21:08Z], 257247] 13:21:08.687 [debug] QUERY OK source="media_metadata" db=0.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/257247/metadata.json.gz", "/config/metadata/media_items/257247/thumbnail.jpg", 257247, ~U[2026-10-17 11:21:08Z], ~U[2026-10-17 11:21:08Z]] 13:21:08.688 [debug] QUERY OK db=0.2ms commit [] 13:21:08.689 [debug] QUERY OK source="media_items" db=0.8ms idle=1225.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [311291056, ~U[2026-10-17 11:21:08Z], 257247] 13:21:08.689 [info] User scripts lifecyle file either not present or is empty. Skipping. 13:21:08.690 [info] {"args":{"id":257247},"id":6587,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":19976273,"event":"job:stop","queue_time":712467,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 13:21:08.884 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/FknLu\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple Reference Image verifies iPhone photos\n1:44 Flock cameras hacked, Boston drops Flock\n3:20 US military confirms space weapons\n5:19 QUICK BITS INTRO\n5:26 Denuvo sues Voices38\n6:12 Meta's camera-free Luna glasses\n6:43 Chipotle hires Palantir for food safety\n7:16 MW's robot arm homes\n7:59 Agility's Digit 5 squats for safety\n8:38 Credits", "duration" => 535, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e091700 - Apple’s Slop Stopper.mkv", "id" => "7o38pz5VBZM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7o38pz5VBZM", "playlist_index" => 12, "timestamp" => 1789606981, "title" => "Apple’s Slop Stopper", "upload_date" => "20260917"} 13:21:08.885 [debug] QUERY OK source="sources" db=0.3ms idle=197.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:08.886 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=196.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:08.890 [debug] QUERY OK source="media_items" db=3.9ms idle=196.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-17 01:03:01Z], 5] 13:21:08.892 [debug] QUERY OK source="media_items" db=1.1ms idle=194.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/FknLu\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple Reference Image verifies iPhone photos\n1:44 Flock cameras hacked, Boston drops Flock\n3:20 US military confirms space weapons\n5:19 QUICK BITS INTRO\n5:26 Denuvo sues Voices38\n6:12 Meta's camera-free Luna glasses\n6:43 Chipotle hires Palantir for food safety\n7:16 MW's robot arm homes\n7:59 Agility's Digit 5 squats for safety\n8:38 Credits", "Apple’s Slop Stopper", "77c59793-996d-4d72-93da-46d7dcd4b4d1", "7o38pz5VBZM", false, 535, false, "https://www.youtube.com/watch?v=7o38pz5VBZM", 12, "/downloads/shows/TechLinked/Season 2026/s2026e091700 - Apple’s Slop Stopper.mkv", false, false, 5, [], 98, ~U[2026-09-17 01:03:01Z], ~U[2026-10-17 11:21:08Z], ~U[2026-10-17 11:21:08Z], "Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/FknLu\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple Reference Image verifies iPhone photos\n1:44 Flock cameras hacked, Boston drops Flock\n3:20 US military confirms space weapons\n5:19 QUICK BITS INTRO\n5:26 Denuvo sues Voices38\n6:12 Meta's camera-free Luna glasses\n6:43 Chipotle hires Palantir for food safety\n7:16 MW's robot arm homes\n7:59 Agility's Digit 5 squats for safety\n8:38 Credits", "Apple’s Slop Stopper", "7o38pz5VBZM", 535, false, "https://www.youtube.com/watch?v=7o38pz5VBZM", "/downloads/shows/TechLinked/Season 2026/s2026e091700 - Apple’s Slop Stopper.mkv", false, 5, ~U[2026-09-17 01:03:01Z]] 13:21:08.892 [debug] QUERY OK source="sources" db=0.2ms idle=182.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:08.893 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:08.893 [debug] QUERY OK source="media_items" db=0.3ms idle=7.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [240590] 13:21:08.893 [debug] Current batch of media processed. Will check again in 1000ms 13:21:09.894 [debug] Current batch of media processed. Will check again in 1000ms 13:21:10.895 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/dHfBc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam Frame price and specs\n1:29 AI CEOs call for a slowdown\n2:46 iOS 27 and the new Siri\n5:13 QUICK BITS INTRO\n5:21 Flock license plate searches\n6:05 OpenAI contractors reading chats\n6:47 Revolut data leak\n7:23 Waymo reports its riders\n7:47 Home lab server from landfill parts\n8:17 Credits", "duration" => 506, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e091500 - It’s Finally Here.mkv", "id" => "CXYt9wzX3kg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CXYt9wzX3kg", "playlist_index" => 13, "timestamp" => 1789432007, "title" => "It’s Finally Here", "upload_date" => "20260915"} 13:21:10.896 [debug] QUERY OK source="sources" db=0.2ms idle=433.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:10.896 [debug] QUERY OK source="sources" db=0.1ms idle=433.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:10.900 [debug] QUERY OK source="media_items" db=3.5ms idle=434.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-15 00:26:47Z], 5] 13:21:10.902 [debug] QUERY OK source="media_items" db=1.1ms idle=438.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/dHfBc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam Frame price and specs\n1:29 AI CEOs call for a slowdown\n2:46 iOS 27 and the new Siri\n5:13 QUICK BITS INTRO\n5:21 Flock license plate searches\n6:05 OpenAI contractors reading chats\n6:47 Revolut data leak\n7:23 Waymo reports its riders\n7:47 Home lab server from landfill parts\n8:17 Credits", "It’s Finally Here", "f19a0f3a-361a-45db-b24e-1599eb0386ad", "CXYt9wzX3kg", false, 506, false, "https://www.youtube.com/watch?v=CXYt9wzX3kg", 13, "/downloads/shows/TechLinked/Season 2026/s2026e091500 - It’s Finally Here.mkv", false, false, 5, [], 98, ~U[2026-09-15 00:26:47Z], ~U[2026-10-17 11:21:10Z], ~U[2026-10-17 11:21:10Z], "Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/dHfBc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam Frame price and specs\n1:29 AI CEOs call for a slowdown\n2:46 iOS 27 and the new Siri\n5:13 QUICK BITS INTRO\n5:21 Flock license plate searches\n6:05 OpenAI contractors reading chats\n6:47 Revolut data leak\n7:23 Waymo reports its riders\n7:47 Home lab server from landfill parts\n8:17 Credits", "It’s Finally Here", "CXYt9wzX3kg", 506, false, "https://www.youtube.com/watch?v=CXYt9wzX3kg", "/downloads/shows/TechLinked/Season 2026/s2026e091500 - It’s Finally Here.mkv", false, 5, ~U[2026-09-15 00:26:47Z]] 13:21:10.902 [debug] QUERY OK source="sources" db=0.1ms idle=189.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:10.903 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:10.903 [debug] QUERY OK source="media_items" db=0.2ms idle=6.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [239531] 13:21:10.903 [debug] Current batch of media processed. Will check again in 1000ms 13:21:11.904 [debug] Current batch of media processed. Will check again in 1000ms 13:21:12.905 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "dbrand MNML just dropped who dis https://mybossisveryshort.com\n\nNEWS SOURCES: https://lmg.gg/YZuHq\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 mods run wild\n1:53 AI researchers sound the alarm\n4:50 QUICK BITS INTRO\n4:58 Meta Project Phoenix leak\n5:26 Meta AI prompts get invasive\n5:55 AMD budget CPU lifeline\n6:27 Steam age checks and California rules\n7:14 Nitter is back\n7:33 Fly brain plays Doom\n8:05 Credits", "duration" => 497, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e091200 - DLSS 5 My Desktop.mkv", "id" => "raO17F9uINs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=raO17F9uINs", "playlist_index" => 14, "timestamp" => 1789176466, "title" => "DLSS 5 My Desktop", "upload_date" => "20260912"} 13:21:12.906 [debug] QUERY OK source="sources" db=0.2ms idle=443.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:12.906 [debug] QUERY OK source="sources" db=0.1ms idle=443.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:12.910 [debug] QUERY OK source="media_items" db=3.5ms idle=444.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-12 01:27:46Z], 5] 13:21:12.912 [debug] QUERY OK source="media_items" db=0.9ms idle=448.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["dbrand MNML just dropped who dis https://mybossisveryshort.com\n\nNEWS SOURCES: https://lmg.gg/YZuHq\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 mods run wild\n1:53 AI researchers sound the alarm\n4:50 QUICK BITS INTRO\n4:58 Meta Project Phoenix leak\n5:26 Meta AI prompts get invasive\n5:55 AMD budget CPU lifeline\n6:27 Steam age checks and California rules\n7:14 Nitter is back\n7:33 Fly brain plays Doom\n8:05 Credits", "DLSS 5 My Desktop", "2133f0fe-b229-468f-86f1-9119049ec73c", "raO17F9uINs", false, 497, false, "https://www.youtube.com/watch?v=raO17F9uINs", 14, "/downloads/shows/TechLinked/Season 2026/s2026e091200 - DLSS 5 My Desktop.mkv", false, false, 5, [], 98, ~U[2026-09-12 01:27:46Z], ~U[2026-10-17 11:21:12Z], ~U[2026-10-17 11:21:12Z], "dbrand MNML just dropped who dis https://mybossisveryshort.com\n\nNEWS SOURCES: https://lmg.gg/YZuHq\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 mods run wild\n1:53 AI researchers sound the alarm\n4:50 QUICK BITS INTRO\n4:58 Meta Project Phoenix leak\n5:26 Meta AI prompts get invasive\n5:55 AMD budget CPU lifeline\n6:27 Steam age checks and California rules\n7:14 Nitter is back\n7:33 Fly brain plays Doom\n8:05 Credits", "DLSS 5 My Desktop", "raO17F9uINs", 497, false, "https://www.youtube.com/watch?v=raO17F9uINs", "/downloads/shows/TechLinked/Season 2026/s2026e091200 - DLSS 5 My Desktop.mkv", false, 5, ~U[2026-09-12 01:27:46Z]] 13:21:12.912 [debug] QUERY OK source="sources" db=0.1ms idle=196.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:12.912 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:12.913 [debug] QUERY OK source="media_items" db=0.2ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [237946] 13:21:12.913 [debug] Current batch of media processed. Will check again in 1000ms 13:21:13.914 [debug] Current batch of media processed. Will check again in 1000ms 13:21:14.915 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/VS0EI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple unveils the foldable iPhone Duo\n1:43 iPhone 18 Pro, AirPods 5, and Apple Watches\n3:56 LG TVs accused of spying\n5:55 QUICK BITS INTRO\n6:06 X blocks a rival from using Twitter\n6:42 UK plans default phone nudity blocks\n7:34 Hypertune puts overclocking behind a subscription\n8:27 Robot mowers learn to edge\n9:11 Japan’s ambulance for humanoid robots\n10:03 Credits", "duration" => 605, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e091000 - Yep, That’s a Folding iPhone.mkv", "id" => "mikDGdoFGmw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mikDGdoFGmw", "playlist_index" => 15, "timestamp" => 1789009235, "title" => "Yep, That’s a Folding iPhone", "upload_date" => "20260910"} 13:21:14.916 [debug] QUERY OK source="sources" db=0.3ms idle=453.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:14.917 [debug] QUERY OK source="sources" db=0.1ms idle=453.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:14.921 [debug] QUERY OK source="media_items" db=3.6ms idle=454.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-10 03:00:35Z], 5] 13:21:14.923 [debug] QUERY OK source="media_items" db=1.4ms idle=458.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/VS0EI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple unveils the foldable iPhone Duo\n1:43 iPhone 18 Pro, AirPods 5, and Apple Watches\n3:56 LG TVs accused of spying\n5:55 QUICK BITS INTRO\n6:06 X blocks a rival from using Twitter\n6:42 UK plans default phone nudity blocks\n7:34 Hypertune puts overclocking behind a subscription\n8:27 Robot mowers learn to edge\n9:11 Japan’s ambulance for humanoid robots\n10:03 Credits", "Yep, That’s a Folding iPhone", "7e5bc5d9-63a9-45df-80e4-d65ee5440000", "mikDGdoFGmw", false, 605, false, "https://www.youtube.com/watch?v=mikDGdoFGmw", 15, "/downloads/shows/TechLinked/Season 2026/s2026e091000 - Yep, That’s a Folding iPhone.mkv", false, false, 5, [], 98, ~U[2026-09-10 03:00:35Z], ~U[2026-10-17 11:21:14Z], ~U[2026-10-17 11:21:14Z], "Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/VS0EI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple unveils the foldable iPhone Duo\n1:43 iPhone 18 Pro, AirPods 5, and Apple Watches\n3:56 LG TVs accused of spying\n5:55 QUICK BITS INTRO\n6:06 X blocks a rival from using Twitter\n6:42 UK plans default phone nudity blocks\n7:34 Hypertune puts overclocking behind a subscription\n8:27 Robot mowers learn to edge\n9:11 Japan’s ambulance for humanoid robots\n10:03 Credits", "Yep, That’s a Folding iPhone", "mikDGdoFGmw", 605, false, "https://www.youtube.com/watch?v=mikDGdoFGmw", "/downloads/shows/TechLinked/Season 2026/s2026e091000 - Yep, That’s a Folding iPhone.mkv", false, 5, ~U[2026-09-10 03:00:35Z]] 13:21:14.923 [debug] QUERY OK source="sources" db=0.1ms idle=203.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:14.924 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:14.924 [debug] QUERY OK source="media_items" db=0.2ms idle=7.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [236805] 13:21:14.924 [debug] Current batch of media processed. Will check again in 1000ms 13:21:15.925 [debug] Current batch of media processed. Will check again in 1000ms 13:21:16.926 [debug] Current batch of media processed. Will check again in 1000ms 13:21:17.927 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Thanks to UGREEN for sponsoring this video! Check out the UGREEN NAS on their Official Store: https://ai.us.ugreen.com/QSsAdc\n\nUGREEN NAS DXP6800 Ultra: https://amzn.to/4qJzIDa\nUGREEN NAS Series: https://amzn.to/3UkOswd\n\nNEWS SOURCES: https://lmg.gg/3h12c\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 IFA 2026\n2:16 Tesla Cybercab\n3:58 Google ad tech ruling\n6:10 QUICK BITS INTRO\n6:24 Xbox Cloud Gaming limits\n6:50 AI chatbot outages\n7:32 Missouri councilman recalled\n8:11 Ig Nobel Prizes\n9:11 Credits", "duration" => 581, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e090500 - Finally Something Different.mkv", "id" => "V9dRClSBxcU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=V9dRClSBxcU", "playlist_index" => 16, "timestamp" => 1788569459, "title" => "Finally Something Different", "upload_date" => "20260905"} 13:21:17.928 [debug] QUERY OK source="sources" db=0.2ms idle=1465.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:17.928 [debug] QUERY OK source="sources" db=0.1ms idle=1465.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:17.932 [debug] QUERY OK source="media_items" db=3.5ms idle=1466.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-05 00:50:59Z], 5] 13:21:17.934 [debug] QUERY OK source="media_items" db=1.0ms idle=1210.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to UGREEN for sponsoring this video! Check out the UGREEN NAS on their Official Store: https://ai.us.ugreen.com/QSsAdc\n\nUGREEN NAS DXP6800 Ultra: https://amzn.to/4qJzIDa\nUGREEN NAS Series: https://amzn.to/3UkOswd\n\nNEWS SOURCES: https://lmg.gg/3h12c\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 IFA 2026\n2:16 Tesla Cybercab\n3:58 Google ad tech ruling\n6:10 QUICK BITS INTRO\n6:24 Xbox Cloud Gaming limits\n6:50 AI chatbot outages\n7:32 Missouri councilman recalled\n8:11 Ig Nobel Prizes\n9:11 Credits", "Finally Something Different", "14d2d573-f552-4131-85be-7029452f1fcf", "V9dRClSBxcU", false, 581, false, "https://www.youtube.com/watch?v=V9dRClSBxcU", 16, "/downloads/shows/TechLinked/Season 2026/s2026e090500 - Finally Something Different.mkv", false, false, 5, [], 98, ~U[2026-09-05 00:50:59Z], ~U[2026-10-17 11:21:17Z], ~U[2026-10-17 11:21:17Z], "Thanks to UGREEN for sponsoring this video! Check out the UGREEN NAS on their Official Store: https://ai.us.ugreen.com/QSsAdc\n\nUGREEN NAS DXP6800 Ultra: https://amzn.to/4qJzIDa\nUGREEN NAS Series: https://amzn.to/3UkOswd\n\nNEWS SOURCES: https://lmg.gg/3h12c\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 IFA 2026\n2:16 Tesla Cybercab\n3:58 Google ad tech ruling\n6:10 QUICK BITS INTRO\n6:24 Xbox Cloud Gaming limits\n6:50 AI chatbot outages\n7:32 Missouri councilman recalled\n8:11 Ig Nobel Prizes\n9:11 Credits", "Finally Something Different", "V9dRClSBxcU", 581, false, "https://www.youtube.com/watch?v=V9dRClSBxcU", "/downloads/shows/TechLinked/Season 2026/s2026e090500 - Finally Something Different.mkv", false, 5, ~U[2026-09-05 00:50:59Z]] 13:21:17.934 [debug] QUERY OK source="sources" db=0.2ms idle=211.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:17.935 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:17.935 [debug] QUERY OK source="media_items" db=0.2ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [234181] 13:21:17.935 [debug] Current batch of media processed. Will check again in 1000ms 13:21:18.936 [debug] Current batch of media processed. Will check again in 1000ms 13:21:19.937 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sign up with the following links and enjoy the first 6 months of OpManager Nexus free.\nOn-Site: https://lmg.gg/site24x7\nCloud: https://lmg.gg/manageengine\n\nNEWS SOURCES: https://lmg.gg/z0zge\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 John Ternus takes over as Apple CEO\n1:16 GoPro merges with an optical photonics firm\n2:15 Dyson's $500 camera toothbrush\n4:21 QUICK BITS INTRO\n4:29 NYC restricts AI in schools\n5:03 Acer Predator Atlas 7 and folding concept\n5:30 Firefox gets ad blocking on iOS\n5:49 Roku OLED TVs\n6:20 KAIST hidden camera detector\n6:53 Credits", "duration" => 425, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e090300 - It’s Ternus Time.mkv", "id" => "urj0cSCd514", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=urj0cSCd514", "playlist_index" => 17, "timestamp" => 1788395238, "title" => "It’s Ternus Time", "upload_date" => "20260903"} 13:21:19.938 [debug] QUERY OK source="sources" db=0.5ms idle=475.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:19.939 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=476.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:19.945 [debug] QUERY OK source="media_items" db=5.2ms queue=0.1ms idle=477.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-03 00:27:18Z], 5] 13:21:19.948 [debug] QUERY OK source="media_items" db=2.1ms idle=483.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Sign up with the following links and enjoy the first 6 months of OpManager Nexus free.\nOn-Site: https://lmg.gg/site24x7\nCloud: https://lmg.gg/manageengine\n\nNEWS SOURCES: https://lmg.gg/z0zge\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 John Ternus takes over as Apple CEO\n1:16 GoPro merges with an optical photonics firm\n2:15 Dyson's $500 camera toothbrush\n4:21 QUICK BITS INTRO\n4:29 NYC restricts AI in schools\n5:03 Acer Predator Atlas 7 and folding concept\n5:30 Firefox gets ad blocking on iOS\n5:49 Roku OLED TVs\n6:20 KAIST hidden camera detector\n6:53 Credits", "It’s Ternus Time", "ac2162ad-c021-49eb-87b6-19969e7e72f8", "urj0cSCd514", false, 425, false, "https://www.youtube.com/watch?v=urj0cSCd514", 17, "/downloads/shows/TechLinked/Season 2026/s2026e090300 - It’s Ternus Time.mkv", false, false, 5, [], 98, ~U[2026-09-03 00:27:18Z], ~U[2026-10-17 11:21:19Z], ~U[2026-10-17 11:21:19Z], "Sign up with the following links and enjoy the first 6 months of OpManager Nexus free.\nOn-Site: https://lmg.gg/site24x7\nCloud: https://lmg.gg/manageengine\n\nNEWS SOURCES: https://lmg.gg/z0zge\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 John Ternus takes over as Apple CEO\n1:16 GoPro merges with an optical photonics firm\n2:15 Dyson's $500 camera toothbrush\n4:21 QUICK BITS INTRO\n4:29 NYC restricts AI in schools\n5:03 Acer Predator Atlas 7 and folding concept\n5:30 Firefox gets ad blocking on iOS\n5:49 Roku OLED TVs\n6:20 KAIST hidden camera detector\n6:53 Credits", "It’s Ternus Time", "urj0cSCd514", 425, false, "https://www.youtube.com/watch?v=urj0cSCd514", "/downloads/shows/TechLinked/Season 2026/s2026e090300 - It’s Ternus Time.mkv", false, 5, ~U[2026-09-03 00:27:18Z]] 13:21:19.949 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=222.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:19.950 [debug] QUERY OK source="media_profiles" db=0.3ms idle=11.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:19.951 [debug] QUERY OK source="media_items" db=0.3ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [233048] 13:21:19.951 [debug] Current batch of media processed. Will check again in 1000ms 13:21:20.953 [debug] Current batch of media processed. Will check again in 1000ms 13:21:21.953 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLAug26 to get started.\n\nNEWS SOURCES: https://lmg.gg/qC8jz\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam server leak\n1:56 CXMT starts LPDDR6 production\n3:18 Meta tests data center robots\n5:32 QUICK BITS INTRO\n5:39 Anthropic sued over song lyrics\n6:30 Court rules prediction markets are gambling\n7:17 Meta's teen safety ads\n7:52 Sony on digital ownership\n8:52 Robot vacuum affair case\n9:43 Credits", "duration" => 595, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e090100 - Is This Valve’s Biggest Leak?.mkv", "id" => "H6UC_ipdX-8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=H6UC_ipdX-8", "playlist_index" => 18, "timestamp" => 1788224100, "title" => "Is This Valve’s Biggest Leak?", "upload_date" => "20260901"} 13:21:21.954 [debug] QUERY OK source="sources" db=0.2ms idle=475.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:21.954 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=476.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:21.958 [debug] QUERY OK source="media_items" db=3.7ms idle=476.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-01 00:55:00Z], 5] 13:21:21.960 [debug] QUERY OK source="media_items" db=1.1ms idle=480.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLAug26 to get started.\n\nNEWS SOURCES: https://lmg.gg/qC8jz\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam server leak\n1:56 CXMT starts LPDDR6 production\n3:18 Meta tests data center robots\n5:32 QUICK BITS INTRO\n5:39 Anthropic sued over song lyrics\n6:30 Court rules prediction markets are gambling\n7:17 Meta's teen safety ads\n7:52 Sony on digital ownership\n8:52 Robot vacuum affair case\n9:43 Credits", "Is This Valve’s Biggest Leak?", "1a79a577-4c13-4883-8a37-d964c482a5a3", "H6UC_ipdX-8", false, 595, false, "https://www.youtube.com/watch?v=H6UC_ipdX-8", 18, "/downloads/shows/TechLinked/Season 2026/s2026e090100 - Is This Valve’s Biggest Leak?.mkv", false, false, 5, [], 98, ~U[2026-09-01 00:55:00Z], ~U[2026-10-17 11:21:21Z], ~U[2026-10-17 11:21:21Z], "If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLAug26 to get started.\n\nNEWS SOURCES: https://lmg.gg/qC8jz\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam server leak\n1:56 CXMT starts LPDDR6 production\n3:18 Meta tests data center robots\n5:32 QUICK BITS INTRO\n5:39 Anthropic sued over song lyrics\n6:30 Court rules prediction markets are gambling\n7:17 Meta's teen safety ads\n7:52 Sony on digital ownership\n8:52 Robot vacuum affair case\n9:43 Credits", "Is This Valve’s Biggest Leak?", "H6UC_ipdX-8", 595, false, "https://www.youtube.com/watch?v=H6UC_ipdX-8", "/downloads/shows/TechLinked/Season 2026/s2026e090100 - Is This Valve’s Biggest Leak?.mkv", false, 5, ~U[2026-09-01 00:55:00Z]] 13:21:21.961 [debug] QUERY OK source="sources" db=0.2ms idle=231.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:21.961 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:21.962 [debug] QUERY OK source="media_items" db=0.2ms idle=7.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [232016] 13:21:21.962 [debug] Current batch of media processed. Will check again in 1000ms 13:21:22.963 [debug] Current batch of media processed. Will check again in 1000ms 13:21:23.964 [debug] Current batch of media processed. Will check again in 1000ms 13:21:24.965 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Traditional carriers track your data. Cape protects it with built-in privacy features like IMSI rotation and last-mile encrypted texting.\n\nUse code TECHLINKED and get 33% off your first 6 months: https://cape.co/techlinked\n\nApp Download Links:\nApple: https://lmg.gg/CapeIOS\nGoogle: https://lmg.gg/CapeAndroid\n\nCape is also now available on the Accrescent App Store: https://accrescent.app/\n\nNEWS SOURCES: https://lmg.gg/4zAv1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 leak\n1:35 Nvidia and Hugging Face\n2:26 Anthropic blacklist struck down\n4:16 QUICK BITS INTRO\n4:25 Samsung Odyssey monitors\n5:09 Oura lawsuit\n5:44 Roblox feed ban\n6:18 Playdate tariff refunds\n6:56 Mosquito laser turret\n7:38 Credits", "duration" => 476, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e082800 - SLOP FILTER TIME!.mkv", "id" => "b0OuoDtkpBA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=b0OuoDtkpBA", "playlist_index" => 19, "timestamp" => 1787959832, "title" => "SLOP FILTER TIME!", "upload_date" => "20260828"} 13:21:24.966 [debug] QUERY OK source="sources" db=0.2ms idle=1487.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:24.966 [debug] QUERY OK source="sources" db=0.1ms idle=1488.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:24.970 [debug] QUERY OK source="media_items" db=3.5ms idle=1488.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-28 23:30:32Z], 5] 13:21:24.972 [debug] QUERY OK source="media_items" db=1.1ms idle=1238.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Traditional carriers track your data. Cape protects it with built-in privacy features like IMSI rotation and last-mile encrypted texting.\n\nUse code TECHLINKED and get 33% off your first 6 months: https://cape.co/techlinked\n\nApp Download Links:\nApple: https://lmg.gg/CapeIOS\nGoogle: https://lmg.gg/CapeAndroid\n\nCape is also now available on the Accrescent App Store: https://accrescent.app/\n\nNEWS SOURCES: https://lmg.gg/4zAv1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 leak\n1:35 Nvidia and Hugging Face\n2:26 Anthropic blacklist struck down\n4:16 QUICK BITS INTRO\n4:25 Samsung Odyssey monitors\n5:09 Oura lawsuit\n5:44 Roblox feed ban\n6:18 Playdate tariff refunds\n6:56 Mosquito laser turret\n7:38 Credits", "SLOP FILTER TIME!", "5ed823d7-3c85-4980-b597-9b373e01361b", "b0OuoDtkpBA", false, 476, false, "https://www.youtube.com/watch?v=b0OuoDtkpBA", 19, "/downloads/shows/TechLinked/Season 2026/s2026e082800 - SLOP FILTER TIME!.mkv", false, false, 5, [], 98, ~U[2026-08-28 23:30:32Z], ~U[2026-10-17 11:21:24Z], ~U[2026-10-17 11:21:24Z], "Traditional carriers track your data. Cape protects it with built-in privacy features like IMSI rotation and last-mile encrypted texting.\n\nUse code TECHLINKED and get 33% off your first 6 months: https://cape.co/techlinked\n\nApp Download Links:\nApple: https://lmg.gg/CapeIOS\nGoogle: https://lmg.gg/CapeAndroid\n\nCape is also now available on the Accrescent App Store: https://accrescent.app/\n\nNEWS SOURCES: https://lmg.gg/4zAv1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 leak\n1:35 Nvidia and Hugging Face\n2:26 Anthropic blacklist struck down\n4:16 QUICK BITS INTRO\n4:25 Samsung Odyssey monitors\n5:09 Oura lawsuit\n5:44 Roblox feed ban\n6:18 Playdate tariff refunds\n6:56 Mosquito laser turret\n7:38 Credits", "SLOP FILTER TIME!", "b0OuoDtkpBA", 476, false, "https://www.youtube.com/watch?v=b0OuoDtkpBA", "/downloads/shows/TechLinked/Season 2026/s2026e082800 - SLOP FILTER TIME!.mkv", false, 5, ~U[2026-08-28 23:30:32Z]] 13:21:24.972 [debug] QUERY OK source="sources" db=0.2ms idle=239.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:24.973 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:24.973 [debug] QUERY OK source="media_items" db=0.2ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [230465] 13:21:24.973 [debug] Current batch of media processed. Will check again in 1000ms 13:21:25.974 [debug] Current batch of media processed. Will check again in 1000ms 13:21:26.975 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev \n\nNEWS SOURCES: https://lmg.gg/R3YOs\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta settles teen addiction lawsuit\n1:23 Apple M6 Mac mini and M5 Mac Studio\n2:37 Twitter kills Nitter\n4:36 QUICK BITS INTRO\n4:45 Norway weighs smart glasses rules\n5:13 Ring's new default encryption\n5:43 Xbox 25th anniversary accessories\n6:08 OpenAI's Broadcom chip benchmarks\n6:45 Apple polishing cloth price cut\n7:12 Credits", "duration" => 449, "filename" => "/downloads/shows/TechLinked/Season 2026/s2026e082700 - That’s It?.mkv", "id" => "8FKxfL8EIwM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8FKxfL8EIwM", "playlist_index" => 20, "timestamp" => 1787792127, "title" => "That’s It?", "upload_date" => "20260827"} 13:21:26.976 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=497.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:26.977 [debug] QUERY OK source="sources" db=0.1ms idle=498.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:26.981 [debug] QUERY OK source="media_items" db=3.7ms idle=498.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-27 00:55:27Z], 5] 13:21:26.985 [debug] QUERY OK source="media_items" db=3.7ms idle=503.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev \n\nNEWS SOURCES: https://lmg.gg/R3YOs\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta settles teen addiction lawsuit\n1:23 Apple M6 Mac mini and M5 Mac Studio\n2:37 Twitter kills Nitter\n4:36 QUICK BITS INTRO\n4:45 Norway weighs smart glasses rules\n5:13 Ring's new default encryption\n5:43 Xbox 25th anniversary accessories\n6:08 OpenAI's Broadcom chip benchmarks\n6:45 Apple polishing cloth price cut\n7:12 Credits", "That’s It?", "9fe47d66-3336-44f2-8bbd-bd1550d8c9c4", "8FKxfL8EIwM", false, 449, false, "https://www.youtube.com/watch?v=8FKxfL8EIwM", 20, "/downloads/shows/TechLinked/Season 2026/s2026e082700 - That’s It?.mkv", false, false, 5, [], 98, ~U[2026-08-27 00:55:27Z], ~U[2026-10-17 11:21:26Z], ~U[2026-10-17 11:21:26Z], "Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev \n\nNEWS SOURCES: https://lmg.gg/R3YOs\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta settles teen addiction lawsuit\n1:23 Apple M6 Mac mini and M5 Mac Studio\n2:37 Twitter kills Nitter\n4:36 QUICK BITS INTRO\n4:45 Norway weighs smart glasses rules\n5:13 Ring's new default encryption\n5:43 Xbox 25th anniversary accessories\n6:08 OpenAI's Broadcom chip benchmarks\n6:45 Apple polishing cloth price cut\n7:12 Credits", "That’s It?", "8FKxfL8EIwM", 449, false, "https://www.youtube.com/watch?v=8FKxfL8EIwM", "/downloads/shows/TechLinked/Season 2026/s2026e082700 - That’s It?.mkv", false, 5, ~U[2026-08-27 00:55:27Z]] 13:21:26.986 [debug] QUERY OK source="sources" db=0.2ms idle=249.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:26.986 [debug] QUERY OK source="media_profiles" db=0.1ms idle=9.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:21:26.987 [debug] QUERY OK source="media_items" db=0.2ms idle=9.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [229350] 13:21:26.987 [debug] Current batch of media processed. Will check again in 1000ms 13:21:27.988 [debug] Current batch of media processed. Will check again in 1000ms 13:21:28.590 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/techlinked --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/shows/TechLinked/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S00 - %(title)S.%(ext)S --remux-video mp4 --format-sort res:1440,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/d4/b1/d4b1dae5563d83e4379460d68bcaaf56b9983954fe101f81373ebe4e4c643b2d.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/81/e9/81e9f310190fe76c2dd1408d49ff36200341d096af05333ccdb2fa168a7dc431.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 13:21:28.591 [debug] Gracefully stopping file follower 13:21:28.591 [debug] QUERY OK source="sources" db=0.3ms idle=853.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [5] 13:21:28.592 [debug] QUERY OK source="sources" db=0.2ms idle=113.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.596 [debug] QUERY OK source="media_items" db=3.5ms idle=114.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-17 01:48:40Z], 5] 13:21:28.598 [debug] QUERY OK source="media_items" db=1.2ms idle=118.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/v0Q8X\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Tesla’s new Roadster\n2:27 Zero-click spyware delivered through ads\n4:21 Nvidia RTX Spark laptops\n6:43 QUICK BITS INTRO\n6:53 Power to the Players Act\n7:44 MapQuest maps surveillance cameras\n8:33 Ledger wallets sold with spy chips\n9:18 Meta’s Muse Spark\n10:24 Danfoss refrigeration hack\n11:17 Credits", "WTF TESLA WHY", "903841fd-a0ad-48e6-aaa1-d6532f9d49e7", "AGc6cpcMRVQ", false, 711, false, "https://www.youtube.com/watch?v=AGc6cpcMRVQ", 1, "/downloads/shows/TechLinked/Season 2026/s2026e101700 - WTF TESLA WHY.mkv", false, false, 5, [], 98, ~U[2026-10-17 01:48:40Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/v0Q8X\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Tesla’s new Roadster\n2:27 Zero-click spyware delivered through ads\n4:21 Nvidia RTX Spark laptops\n6:43 QUICK BITS INTRO\n6:53 Power to the Players Act\n7:44 MapQuest maps surveillance cameras\n8:33 Ledger wallets sold with spy chips\n9:18 Meta’s Muse Spark\n10:24 Danfoss refrigeration hack\n11:17 Credits", "WTF TESLA WHY", "AGc6cpcMRVQ", 711, false, "https://www.youtube.com/watch?v=AGc6cpcMRVQ", "/downloads/shows/TechLinked/Season 2026/s2026e101700 - WTF TESLA WHY.mkv", false, 5, ~U[2026-10-17 01:48:40Z]] 13:21:28.598 [debug] QUERY OK source="sources" db=0.2ms idle=119.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.602 [debug] QUERY OK source="media_items" db=3.4ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-15 01:19:16Z], 5] 13:21:28.604 [debug] QUERY OK source="media_items" db=1.1ms idle=10.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Minimal, Functional, and Pocketable AF. Get 25% off Ohsnap accessories using our link! http://ohsnap.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/DKSm1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple’s Home View smart home hub\n1:09 Nvidia reportedly halting RTX 5090 production\n2:19 OpenAI engineer arrested for bugging HQ\n4:48 QUICK BITS INTRO\n4:57 Palantir CTO’s AI smoking rant\n5:34 ESA targets Anbernic\n6:10 Fortnite coming to Linux\n6:41 Yandex data center strikes and bot traffic\n7:30 Russia cracks down on AI bear images\n8:08 Credits", "Who is this even for?", "c5e417b2-b2f1-42da-989d-46d27e10e545", "pmADTgizr_4", false, 510, false, "https://www.youtube.com/watch?v=pmADTgizr_4", 2, "/downloads/shows/TechLinked/Season 2026/s2026e101500 - Who is this even for?.mkv", false, false, 5, [], 98, ~U[2026-10-15 01:19:16Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Minimal, Functional, and Pocketable AF. Get 25% off Ohsnap accessories using our link! http://ohsnap.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/DKSm1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple’s Home View smart home hub\n1:09 Nvidia reportedly halting RTX 5090 production\n2:19 OpenAI engineer arrested for bugging HQ\n4:48 QUICK BITS INTRO\n4:57 Palantir CTO’s AI smoking rant\n5:34 ESA targets Anbernic\n6:10 Fortnite coming to Linux\n6:41 Yandex data center strikes and bot traffic\n7:30 Russia cracks down on AI bear images\n8:08 Credits", "Who is this even for?", "pmADTgizr_4", 510, false, "https://www.youtube.com/watch?v=pmADTgizr_4", "/downloads/shows/TechLinked/Season 2026/s2026e101500 - Who is this even for?.mkv", false, 5, ~U[2026-10-15 01:19:16Z]] 13:21:28.605 [debug] QUERY OK source="sources" db=0.6ms idle=8.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.609 [debug] QUERY OK source="media_items" db=3.6ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-10 01:19:10Z], 5] 13:21:28.610 [debug] QUERY OK source="media_items" db=1.0ms idle=10.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to UGREEN for sponsoring this video! Check out their Home Agent lineup and more below!\n\nUGREEN HomeAgent (Reserve from $50, Save 50% AND receive a Free Gift): https://ai.us.ugreen.com/IvysbJ\nUGREEN HomeAgent on Kickstarter: https://bit.ly/4zlFVZc\n\nNEWS SOURCES: https://lmg.gg/K5f0v\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 PS5 OS emulated on PC\n1:27 SpaceX buys RF spectrum\n2:52 PC shipments drop 20%\n5:34 QUICK BITS INTRO\n5:47 AI music streaming fraudster sentenced\n6:37 Homemade Nvidia macOS driver\n7:19 Sony hands VR patents to Meta\n7:59 MonsterCloud CEO secretly paid ransoms\n8:55 California stops human vs robot fights\n9:35 Credits", "Oh Hell Yeah", "cf8c47b0-cd65-48dc-be7c-825f0a69a276", "egHiQ7GVOFI", false, 599, false, "https://www.youtube.com/watch?v=egHiQ7GVOFI", 3, "/downloads/shows/TechLinked/Season 2026/s2026e101000 - Oh Hell Yeah.mkv", false, false, 5, [], 98, ~U[2026-10-10 01:19:10Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Thanks to UGREEN for sponsoring this video! Check out their Home Agent lineup and more below!\n\nUGREEN HomeAgent (Reserve from $50, Save 50% AND receive a Free Gift): https://ai.us.ugreen.com/IvysbJ\nUGREEN HomeAgent on Kickstarter: https://bit.ly/4zlFVZc\n\nNEWS SOURCES: https://lmg.gg/K5f0v\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 PS5 OS emulated on PC\n1:27 SpaceX buys RF spectrum\n2:52 PC shipments drop 20%\n5:34 QUICK BITS INTRO\n5:47 AI music streaming fraudster sentenced\n6:37 Homemade Nvidia macOS driver\n7:19 Sony hands VR patents to Meta\n7:59 MonsterCloud CEO secretly paid ransoms\n8:55 California stops human vs robot fights\n9:35 Credits", "Oh Hell Yeah", "egHiQ7GVOFI", 599, false, "https://www.youtube.com/watch?v=egHiQ7GVOFI", "/downloads/shows/TechLinked/Season 2026/s2026e101000 - Oh Hell Yeah.mkv", false, 5, ~U[2026-10-10 01:19:10Z]] 13:21:28.611 [debug] QUERY OK source="sources" db=0.6ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.615 [debug] QUERY OK source="media_items" db=3.4ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-08 01:39:54Z], 5] 13:21:28.617 [debug] QUERY OK source="media_items" db=1.1ms idle=10.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/nAOAy\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 White House AI executive order\n1:35 Microsoft Surface Laptop Ultra & RTX Spark\n3:22 Paramount Skydance closes Warner Bros. Discovery deal\n5:00 QUICK BITS INTRO\n7:02 States sue TP-Link\n7:52 Google SynthID detector goes public\n8:41 Finland halts Google data centers\n9:19 Brain-IT AI reconstructs what you see\n10:04 Amazon’s “About you” profile\n10:40 Credits", "This is dumb", "fcc35675-b6c0-4a63-a081-e127d5c8a1d6", "1MS8uK--UXs", false, 663, false, "https://www.youtube.com/watch?v=1MS8uK--UXs", 4, "/downloads/shows/TechLinked/Season 2026/s2026e100800 - This is dumb.mkv", false, false, 5, [], 98, ~U[2026-10-08 01:39:54Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/nAOAy\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 White House AI executive order\n1:35 Microsoft Surface Laptop Ultra & RTX Spark\n3:22 Paramount Skydance closes Warner Bros. Discovery deal\n5:00 QUICK BITS INTRO\n7:02 States sue TP-Link\n7:52 Google SynthID detector goes public\n8:41 Finland halts Google data centers\n9:19 Brain-IT AI reconstructs what you see\n10:04 Amazon’s “About you” profile\n10:40 Credits", "This is dumb", "1MS8uK--UXs", 663, false, "https://www.youtube.com/watch?v=1MS8uK--UXs", "/downloads/shows/TechLinked/Season 2026/s2026e100800 - This is dumb.mkv", false, 5, ~U[2026-10-08 01:39:54Z]] 13:21:28.618 [debug] QUERY OK source="sources" db=0.6ms idle=8.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.621 [debug] QUERY OK source="media_items" db=3.5ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-06 01:41:16Z], 5] 13:21:28.623 [debug] QUERY OK source="media_items" db=1.1ms idle=10.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/IdPz2\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Colorful's Chinese DDR5 RAM gets a price\n1:00 Judge tosses Flock evidence\n2:06 Used CPU came with a Valorant ban\n4:41 QUICK BITS INTRO\n4:52 Tool strips Apple Intelligence from macOS 27\n5:30 Google pauses OSS bug bounty over AI slop\n6:00 Windows 11 update crashes games\n6:31 Alexa won't stop singing\n7:16 Figure melts its old robots\n7:43 Credits", "PLEASE HELP US", "e819c63e-0d0b-46bf-9290-91e10f694a33", "mNbqeHU4Rpw", false, 475, false, "https://www.youtube.com/watch?v=mNbqeHU4Rpw", 5, "/downloads/shows/TechLinked/Season 2026/s2026e100600 - PLEASE HELP US.mkv", false, false, 5, [], 98, ~U[2026-10-06 01:41:16Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/IdPz2\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Colorful's Chinese DDR5 RAM gets a price\n1:00 Judge tosses Flock evidence\n2:06 Used CPU came with a Valorant ban\n4:41 QUICK BITS INTRO\n4:52 Tool strips Apple Intelligence from macOS 27\n5:30 Google pauses OSS bug bounty over AI slop\n6:00 Windows 11 update crashes games\n6:31 Alexa won't stop singing\n7:16 Figure melts its old robots\n7:43 Credits", "PLEASE HELP US", "mNbqeHU4Rpw", 475, false, "https://www.youtube.com/watch?v=mNbqeHU4Rpw", "/downloads/shows/TechLinked/Season 2026/s2026e100600 - PLEASE HELP US.mkv", false, 5, ~U[2026-10-06 01:41:16Z]] 13:21:28.624 [debug] QUERY OK source="sources" db=0.6ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.628 [debug] QUERY OK source="media_items" db=3.4ms idle=7.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-10-03 00:51:12Z], 5] 13:21:28.630 [debug] QUERY OK source="media_items" db=1.1ms idle=10.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLOct26 to get started.\n\nNEWS SOURCES: https://lmg.gg/zhToC\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Reddit kills its API, RSS, and old Reddit access\n1:55 OpenAI DevDay and the Dots demo fail\n3:41 YouTube cracks down on Shorts slop\n6:10 QUICK BITS INTRO\n6:27 Amazon delivery driver smart glasses\n7:12 NYC click-to-cancel law\n7:56 Tokyo court protects a voice actor's voice\n8:53 RAM shortage price hikes\n9:48 Micro Center RTX 5090 ID checks\n10:38 Credits", "What happened to Reddit", "4736d40c-b640-4b61-b73a-650649bad2c1", "fThppBugFXk", false, 666, false, "https://www.youtube.com/watch?v=fThppBugFXk", 6, "/downloads/shows/TechLinked/Season 2026/s2026e100300 - What happened to Reddit.mkv", false, false, 5, [], 98, ~U[2026-10-03 00:51:12Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLOct26 to get started.\n\nNEWS SOURCES: https://lmg.gg/zhToC\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Reddit kills its API, RSS, and old Reddit access\n1:55 OpenAI DevDay and the Dots demo fail\n3:41 YouTube cracks down on Shorts slop\n6:10 QUICK BITS INTRO\n6:27 Amazon delivery driver smart glasses\n7:12 NYC click-to-cancel law\n7:56 Tokyo court protects a voice actor's voice\n8:53 RAM shortage price hikes\n9:48 Micro Center RTX 5090 ID checks\n10:38 Credits", "What happened to Reddit", "fThppBugFXk", 666, false, "https://www.youtube.com/watch?v=fThppBugFXk", "/downloads/shows/TechLinked/Season 2026/s2026e100300 - What happened to Reddit.mkv", false, 5, ~U[2026-10-03 00:51:12Z]] 13:21:28.631 [debug] QUERY OK source="sources" db=0.6ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.635 [debug] QUERY OK source="media_items" db=3.6ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-29 05:06:45Z], 5] 13:21:28.636 [debug] QUERY OK source="media_items" db=1.2ms idle=10.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get started with Proton Drive for Free. Download the CLI or Build from Source: https://proton.me/drive/techlinked\n\nPre-built binaries are the fastest way to get started. Download the standalone `proton-drive` executable for the required platform: https://proton.me/download/drive/cli/index.html\n\nNEWS SOURCES: https://lmg.gg/cnwkc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 OpenAI agents probe government websites\n1:19 States take on Meta and TikTok\n2:51 Flock Safety targets camera map researcher\n5:11 QUICK BITS INTRO\n5:26 Apple loses $5.7B Taptic Engine case\n6:03 $1.7M solid gold mini PC\n6:44 Copilot contractors review disturbing prompts\n7:26 GPU thieves steal trailers full of sand\n8:06 Meta's AI agent botches Marketplace sale\n8:34 Credits", "How Does This Keep Happening?", "334ef95c-db1f-4abe-9215-70be0cdb44b7", "W0F_ur5TiQw", false, 533, false, "https://www.youtube.com/watch?v=W0F_ur5TiQw", 7, "/downloads/shows/TechLinked/Season 2026/s2026e092900 - How Does This Keep Happening?.mkv", false, false, 5, [], 98, ~U[2026-09-29 05:06:45Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Get started with Proton Drive for Free. Download the CLI or Build from Source: https://proton.me/drive/techlinked\n\nPre-built binaries are the fastest way to get started. Download the standalone `proton-drive` executable for the required platform: https://proton.me/download/drive/cli/index.html\n\nNEWS SOURCES: https://lmg.gg/cnwkc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 OpenAI agents probe government websites\n1:19 States take on Meta and TikTok\n2:51 Flock Safety targets camera map researcher\n5:11 QUICK BITS INTRO\n5:26 Apple loses $5.7B Taptic Engine case\n6:03 $1.7M solid gold mini PC\n6:44 Copilot contractors review disturbing prompts\n7:26 GPU thieves steal trailers full of sand\n8:06 Meta's AI agent botches Marketplace sale\n8:34 Credits", "How Does This Keep Happening?", "W0F_ur5TiQw", 533, false, "https://www.youtube.com/watch?v=W0F_ur5TiQw", "/downloads/shows/TechLinked/Season 2026/s2026e092900 - How Does This Keep Happening?.mkv", false, 5, ~U[2026-09-29 05:06:45Z]] 13:21:28.638 [debug] QUERY OK source="sources" db=0.7ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.642 [debug] QUERY OK source="media_items" db=3.7ms idle=8.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-26 00:40:29Z], 5] 13:21:28.650 [debug] QUERY OK source="media_items" db=7.5ms idle=11.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to our sponsor Bitdefender! Try their powerful Scam Protection free for 90 days: https://bitdefend.me/90Linus\n\n#Bitdefender\n\nNEWS SOURCES: https://lmg.gg/qLjDJ\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Microsoft drops the Copilot+ PC name\n2:06 Meta Connect glasses and Muse security flaw\n3:40 Gemini makes phone calls for you\n5:58 QUICK BITS INTRO\n6:12 AMD radar chip turns up in China\n6:51 INMO Air 3 smart glasses recalled\n7:21 WiCi wireless eGPU\n7:57 AI stalker drone\n8:29 Kids hang out in NPR comments\n9:02 Credits", "Anyway,", "bc7fbe14-00b2-4428-9a19-d9be44d22f90", "-1OA3URMck4", false, 557, false, "https://www.youtube.com/watch?v=-1OA3URMck4", 8, "/downloads/shows/TechLinked/Season 2026/s2026e092600 - Anyway,.mkv", false, false, 5, [], 98, ~U[2026-09-26 00:40:29Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Thanks to our sponsor Bitdefender! Try their powerful Scam Protection free for 90 days: https://bitdefend.me/90Linus\n\n#Bitdefender\n\nNEWS SOURCES: https://lmg.gg/qLjDJ\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Microsoft drops the Copilot+ PC name\n2:06 Meta Connect glasses and Muse security flaw\n3:40 Gemini makes phone calls for you\n5:58 QUICK BITS INTRO\n6:12 AMD radar chip turns up in China\n6:51 INMO Air 3 smart glasses recalled\n7:21 WiCi wireless eGPU\n7:57 AI stalker drone\n8:29 Kids hang out in NPR comments\n9:02 Credits", "Anyway,", "-1OA3URMck4", 557, false, "https://www.youtube.com/watch?v=-1OA3URMck4", "/downloads/shows/TechLinked/Season 2026/s2026e092600 - Anyway,.mkv", false, 5, ~U[2026-09-26 00:40:29Z]] 13:21:28.651 [debug] QUERY OK source="sources" db=0.6ms idle=15.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.655 [debug] QUERY OK source="media_items" db=3.7ms idle=14.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-24 00:56:24Z], 5] 13:21:28.657 [debug] QUERY OK source="media_items" db=1.0ms idle=17.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev\n\nNEWS SOURCES: https://lmg.gg/ewrdI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Discord age verification goes live\n1:50 ShinyHunters claims FBI hack\n3:36 Mac mini SSD and iPhone 18 storage\n6:59 QUICK BITS INTRO\n7:07 Made on YouTube Gemini features\n8:02 Qualcomm Snapdragon 8 Elite Gen 6\n8:39 Waymo drives through farmers market\n9:35 China probes AI firms over Claude distillation\n10:20 Samsung update breaks Bespoke AI fridges", "They’re Really Doing It…", "cfb16333-beae-4833-b1da-1ab5e4e3216e", "vC5C2denOOM", false, 671, false, "https://www.youtube.com/watch?v=vC5C2denOOM", 9, "/downloads/shows/TechLinked/Season 2026/s2026e092400 - They’re Really Doing It….mkv", false, false, 5, [], 98, ~U[2026-09-24 00:56:24Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev\n\nNEWS SOURCES: https://lmg.gg/ewrdI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Discord age verification goes live\n1:50 ShinyHunters claims FBI hack\n3:36 Mac mini SSD and iPhone 18 storage\n6:59 QUICK BITS INTRO\n7:07 Made on YouTube Gemini features\n8:02 Qualcomm Snapdragon 8 Elite Gen 6\n8:39 Waymo drives through farmers market\n9:35 China probes AI firms over Claude distillation\n10:20 Samsung update breaks Bespoke AI fridges", "They’re Really Doing It…", "vC5C2denOOM", 671, false, "https://www.youtube.com/watch?v=vC5C2denOOM", "/downloads/shows/TechLinked/Season 2026/s2026e092400 - They’re Really Doing It….mkv", false, 5, ~U[2026-09-24 00:56:24Z]] 13:21:28.657 [debug] QUERY OK source="sources" db=0.6ms idle=15.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.661 [debug] QUERY OK source="media_items" db=3.5ms idle=7.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-22 00:45:08Z], 5] 13:21:28.663 [debug] QUERY OK source="media_items" db=1.1ms idle=10.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to Micro Center for sponsoring this video! Check them out below:\n\nShop Build. Upgrade. Save. Event: https://micro.center/4a6415\nShop Micro Center’s Clearance Event: https://micro.center/d99846\nSign Up for a FREE 128 gig Flash Drive at Micro Center’s Austin location: https://micro.center/f6886e\nVisit Micro Center News: https://micro.center/2e243d\n\nNEWS SOURCES: https://lmg.gg/FhgB5\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Googlebook laptops launch October 4\n1:27 macOS 27 Golden Gate breaks Mission Control\n2:34 AI hallucination nearly triggers ship boarding\n4:19 QUICK BITS INTRO\n4:36 High-end CD players are dying\n5:05 Meta's petabyte subsea cable\n5:33 Amazon blocks Meta's Muse agent\n6:07 Disney Plus \"ad-free\" plans still show ads\n6:37 Unitree Dex5-1 robot hand\n7:15 Credits", "Android Laptops Are Here…", "46b91d52-5b91-48f8-a190-9f1f18914a1b", "TnkCZmKeAbY", false, 448, false, "https://www.youtube.com/watch?v=TnkCZmKeAbY", 10, "/downloads/shows/TechLinked/Season 2026/s2026e092200 - Android Laptops Are Here….mkv", false, false, 5, [], 98, ~U[2026-09-22 00:45:08Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Thanks to Micro Center for sponsoring this video! Check them out below:\n\nShop Build. Upgrade. Save. Event: https://micro.center/4a6415\nShop Micro Center’s Clearance Event: https://micro.center/d99846\nSign Up for a FREE 128 gig Flash Drive at Micro Center’s Austin location: https://micro.center/f6886e\nVisit Micro Center News: https://micro.center/2e243d\n\nNEWS SOURCES: https://lmg.gg/FhgB5\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Googlebook laptops launch October 4\n1:27 macOS 27 Golden Gate breaks Mission Control\n2:34 AI hallucination nearly triggers ship boarding\n4:19 QUICK BITS INTRO\n4:36 High-end CD players are dying\n5:05 Meta's petabyte subsea cable\n5:33 Amazon blocks Meta's Muse agent\n6:07 Disney Plus \"ad-free\" plans still show ads\n6:37 Unitree Dex5-1 robot hand\n7:15 Credits", "Android Laptops Are Here…", "TnkCZmKeAbY", 448, false, "https://www.youtube.com/watch?v=TnkCZmKeAbY", "/downloads/shows/TechLinked/Season 2026/s2026e092200 - Android Laptops Are Here….mkv", false, 5, ~U[2026-09-22 00:45:08Z]] 13:21:28.664 [debug] QUERY OK source="sources" db=0.6ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.668 [debug] QUERY OK source="media_items" db=3.4ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-19 00:46:17Z], 5] 13:21:28.687 [debug] QUERY OK source="media_items" db=18.2ms idle=10.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Wherever today takes you, go comfortably with Vessi Weekend Chelsea—made for exploring, rain or shine. One pair. Countless adventures.\n\n✨ Grab 15% off your first pair here: https://vessi.com/techlinked\n• Free shipping • 30‑day returns • 1‑year warranty\n\nNEWS SOURCES: https://lmg.gg/1wZI0\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta One subscriptions\n1:30 Microsoft memo in the New York Times lawsuit\n3:01 AI slop songs on artists' Spotify pages\n4:36 QUICK BITS INTRO\n4:46 Piracy site blocking bill\n5:23 Nvidia chips still reaching China\n6:02 EU Kids Act\n6:36 AM radio bill passes the House\n7:27 Japan's airport clothing compressors\n7:52 Credits", "Meta, Just Stop", "f131c936-7b7d-4d03-945e-091377af4fa1", "5Ob8xbPCOzM", false, 488, false, "https://www.youtube.com/watch?v=5Ob8xbPCOzM", 11, "/downloads/shows/TechLinked/Season 2026/s2026e091900 - Meta, Just Stop.mkv", false, false, 5, [], 98, ~U[2026-09-19 00:46:17Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Wherever today takes you, go comfortably with Vessi Weekend Chelsea—made for exploring, rain or shine. One pair. Countless adventures.\n\n✨ Grab 15% off your first pair here: https://vessi.com/techlinked\n• Free shipping • 30‑day returns • 1‑year warranty\n\nNEWS SOURCES: https://lmg.gg/1wZI0\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta One subscriptions\n1:30 Microsoft memo in the New York Times lawsuit\n3:01 AI slop songs on artists' Spotify pages\n4:36 QUICK BITS INTRO\n4:46 Piracy site blocking bill\n5:23 Nvidia chips still reaching China\n6:02 EU Kids Act\n6:36 AM radio bill passes the House\n7:27 Japan's airport clothing compressors\n7:52 Credits", "Meta, Just Stop", "5Ob8xbPCOzM", 488, false, "https://www.youtube.com/watch?v=5Ob8xbPCOzM", "/downloads/shows/TechLinked/Season 2026/s2026e091900 - Meta, Just Stop.mkv", false, 5, ~U[2026-09-19 00:46:17Z]] 13:21:28.688 [debug] QUERY OK source="sources" db=0.6ms idle=25.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.692 [debug] QUERY OK source="media_items" db=3.4ms idle=25.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-17 01:03:01Z], 5] 13:21:28.697 [debug] QUERY OK source="media_items" db=4.7ms idle=27.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/FknLu\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple Reference Image verifies iPhone photos\n1:44 Flock cameras hacked, Boston drops Flock\n3:20 US military confirms space weapons\n5:19 QUICK BITS INTRO\n5:26 Denuvo sues Voices38\n6:12 Meta's camera-free Luna glasses\n6:43 Chipotle hires Palantir for food safety\n7:16 MW's robot arm homes\n7:59 Agility's Digit 5 squats for safety\n8:38 Credits", "Apple’s Slop Stopper", "b6b9e400-0c25-4741-9aed-c778cff0af8c", "7o38pz5VBZM", false, 535, false, "https://www.youtube.com/watch?v=7o38pz5VBZM", 12, "/downloads/shows/TechLinked/Season 2026/s2026e091700 - Apple’s Slop Stopper.mkv", false, false, 5, [], 98, ~U[2026-09-17 01:03:01Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Get a free 15-day trial of Odoo’s all-in-one business solution and see how it can make your life easier! Check it out at https://www.odoo.com/r/mFDe\n\nNEWS SOURCES: https://lmg.gg/FknLu\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple Reference Image verifies iPhone photos\n1:44 Flock cameras hacked, Boston drops Flock\n3:20 US military confirms space weapons\n5:19 QUICK BITS INTRO\n5:26 Denuvo sues Voices38\n6:12 Meta's camera-free Luna glasses\n6:43 Chipotle hires Palantir for food safety\n7:16 MW's robot arm homes\n7:59 Agility's Digit 5 squats for safety\n8:38 Credits", "Apple’s Slop Stopper", "7o38pz5VBZM", 535, false, "https://www.youtube.com/watch?v=7o38pz5VBZM", "/downloads/shows/TechLinked/Season 2026/s2026e091700 - Apple’s Slop Stopper.mkv", false, 5, ~U[2026-09-17 01:03:01Z]] 13:21:28.698 [debug] QUERY OK source="sources" db=0.6ms idle=29.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.702 [debug] QUERY OK source="media_items" db=3.7ms queue=0.1ms idle=11.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-15 00:26:47Z], 5] 13:21:28.704 [debug] QUERY OK source="media_items" db=1.2ms idle=14.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/dHfBc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam Frame price and specs\n1:29 AI CEOs call for a slowdown\n2:46 iOS 27 and the new Siri\n5:13 QUICK BITS INTRO\n5:21 Flock license plate searches\n6:05 OpenAI contractors reading chats\n6:47 Revolut data leak\n7:23 Waymo reports its riders\n7:47 Home lab server from landfill parts\n8:17 Credits", "It’s Finally Here", "90bd05a9-34df-448c-be25-973d830c86fe", "CXYt9wzX3kg", false, 506, false, "https://www.youtube.com/watch?v=CXYt9wzX3kg", 13, "/downloads/shows/TechLinked/Season 2026/s2026e091500 - It’s Finally Here.mkv", false, false, 5, [], 98, ~U[2026-09-15 00:26:47Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Play War Thunder for FREE on PC, PlayStation, Xbox, and mobile using the links below! New to the game, or returning after six months? You'll get a massive bonus pack on PC and consoles packed with vehicles, boosters, and more. Claim your bonus and start playing today!\n\nPC/Console: https://playwt.link/techlinked \nMobile: https://wtm.game/techlinked\n\nNEWS SOURCES: https://lmg.gg/dHfBc\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam Frame price and specs\n1:29 AI CEOs call for a slowdown\n2:46 iOS 27 and the new Siri\n5:13 QUICK BITS INTRO\n5:21 Flock license plate searches\n6:05 OpenAI contractors reading chats\n6:47 Revolut data leak\n7:23 Waymo reports its riders\n7:47 Home lab server from landfill parts\n8:17 Credits", "It’s Finally Here", "CXYt9wzX3kg", 506, false, "https://www.youtube.com/watch?v=CXYt9wzX3kg", "/downloads/shows/TechLinked/Season 2026/s2026e091500 - It’s Finally Here.mkv", false, 5, ~U[2026-09-15 00:26:47Z]] 13:21:28.705 [debug] QUERY OK source="sources" db=0.8ms idle=12.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.709 [debug] QUERY OK source="media_items" db=3.5ms idle=8.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-12 01:27:46Z], 5] 13:21:28.711 [debug] QUERY OK source="media_items" db=0.9ms idle=11.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["dbrand MNML just dropped who dis https://mybossisveryshort.com\n\nNEWS SOURCES: https://lmg.gg/YZuHq\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 mods run wild\n1:53 AI researchers sound the alarm\n4:50 QUICK BITS INTRO\n4:58 Meta Project Phoenix leak\n5:26 Meta AI prompts get invasive\n5:55 AMD budget CPU lifeline\n6:27 Steam age checks and California rules\n7:14 Nitter is back\n7:33 Fly brain plays Doom\n8:05 Credits", "DLSS 5 My Desktop", "a8a7198c-7e7e-484d-a751-b032d2cd3e41", "raO17F9uINs", false, 497, false, "https://www.youtube.com/watch?v=raO17F9uINs", 14, "/downloads/shows/TechLinked/Season 2026/s2026e091200 - DLSS 5 My Desktop.mkv", false, false, 5, [], 98, ~U[2026-09-12 01:27:46Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "dbrand MNML just dropped who dis https://mybossisveryshort.com\n\nNEWS SOURCES: https://lmg.gg/YZuHq\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 mods run wild\n1:53 AI researchers sound the alarm\n4:50 QUICK BITS INTRO\n4:58 Meta Project Phoenix leak\n5:26 Meta AI prompts get invasive\n5:55 AMD budget CPU lifeline\n6:27 Steam age checks and California rules\n7:14 Nitter is back\n7:33 Fly brain plays Doom\n8:05 Credits", "DLSS 5 My Desktop", "raO17F9uINs", 497, false, "https://www.youtube.com/watch?v=raO17F9uINs", "/downloads/shows/TechLinked/Season 2026/s2026e091200 - DLSS 5 My Desktop.mkv", false, 5, ~U[2026-09-12 01:27:46Z]] 13:21:28.712 [debug] QUERY OK source="sources" db=0.6ms idle=8.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.715 [debug] QUERY OK source="media_items" db=3.4ms idle=8.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-10 03:00:35Z], 5] 13:21:28.717 [debug] QUERY OK source="media_items" db=1.0ms idle=10.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/VS0EI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple unveils the foldable iPhone Duo\n1:43 iPhone 18 Pro, AirPods 5, and Apple Watches\n3:56 LG TVs accused of spying\n5:55 QUICK BITS INTRO\n6:06 X blocks a rival from using Twitter\n6:42 UK plans default phone nudity blocks\n7:34 Hypertune puts overclocking behind a subscription\n8:27 Robot mowers learn to edge\n9:11 Japan’s ambulance for humanoid robots\n10:03 Credits", "Yep, That’s a Folding iPhone", "794989af-a399-4149-8b61-ab0b3167a2b6", "mikDGdoFGmw", false, 605, false, "https://www.youtube.com/watch?v=mikDGdoFGmw", 15, "/downloads/shows/TechLinked/Season 2026/s2026e091000 - Yep, That’s a Folding iPhone.mkv", false, false, 5, [], 98, ~U[2026-09-10 03:00:35Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Get a 15% discount on Saily eSIM data plans! Download the Saily app and use code TECHLINKED at checkout. Or go to https://saily.com/techlinked\n\nNEWS SOURCES: https://lmg.gg/VS0EI\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Apple unveils the foldable iPhone Duo\n1:43 iPhone 18 Pro, AirPods 5, and Apple Watches\n3:56 LG TVs accused of spying\n5:55 QUICK BITS INTRO\n6:06 X blocks a rival from using Twitter\n6:42 UK plans default phone nudity blocks\n7:34 Hypertune puts overclocking behind a subscription\n8:27 Robot mowers learn to edge\n9:11 Japan’s ambulance for humanoid robots\n10:03 Credits", "Yep, That’s a Folding iPhone", "mikDGdoFGmw", 605, false, "https://www.youtube.com/watch?v=mikDGdoFGmw", "/downloads/shows/TechLinked/Season 2026/s2026e091000 - Yep, That’s a Folding iPhone.mkv", false, 5, ~U[2026-09-10 03:00:35Z]] 13:21:28.718 [debug] QUERY OK source="sources" db=0.6ms idle=8.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.722 [debug] QUERY OK source="media_items" db=3.4ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-05 00:50:59Z], 5] 13:21:28.723 [debug] QUERY OK source="media_items" db=0.9ms idle=10.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to UGREEN for sponsoring this video! Check out the UGREEN NAS on their Official Store: https://ai.us.ugreen.com/QSsAdc\n\nUGREEN NAS DXP6800 Ultra: https://amzn.to/4qJzIDa\nUGREEN NAS Series: https://amzn.to/3UkOswd\n\nNEWS SOURCES: https://lmg.gg/3h12c\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 IFA 2026\n2:16 Tesla Cybercab\n3:58 Google ad tech ruling\n6:10 QUICK BITS INTRO\n6:24 Xbox Cloud Gaming limits\n6:50 AI chatbot outages\n7:32 Missouri councilman recalled\n8:11 Ig Nobel Prizes\n9:11 Credits", "Finally Something Different", "80647bbb-5e05-4cb2-97cc-002ea1b5c0e4", "V9dRClSBxcU", false, 581, false, "https://www.youtube.com/watch?v=V9dRClSBxcU", 16, "/downloads/shows/TechLinked/Season 2026/s2026e090500 - Finally Something Different.mkv", false, false, 5, [], 98, ~U[2026-09-05 00:50:59Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Thanks to UGREEN for sponsoring this video! Check out the UGREEN NAS on their Official Store: https://ai.us.ugreen.com/QSsAdc\n\nUGREEN NAS DXP6800 Ultra: https://amzn.to/4qJzIDa\nUGREEN NAS Series: https://amzn.to/3UkOswd\n\nNEWS SOURCES: https://lmg.gg/3h12c\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 IFA 2026\n2:16 Tesla Cybercab\n3:58 Google ad tech ruling\n6:10 QUICK BITS INTRO\n6:24 Xbox Cloud Gaming limits\n6:50 AI chatbot outages\n7:32 Missouri councilman recalled\n8:11 Ig Nobel Prizes\n9:11 Credits", "Finally Something Different", "V9dRClSBxcU", 581, false, "https://www.youtube.com/watch?v=V9dRClSBxcU", "/downloads/shows/TechLinked/Season 2026/s2026e090500 - Finally Something Different.mkv", false, 5, ~U[2026-09-05 00:50:59Z]] 13:21:28.724 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=8.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.728 [debug] QUERY OK source="media_items" db=3.5ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-03 00:27:18Z], 5] 13:21:28.730 [debug] QUERY OK source="media_items" db=1.0ms idle=10.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Sign up with the following links and enjoy the first 6 months of OpManager Nexus free.\nOn-Site: https://lmg.gg/site24x7\nCloud: https://lmg.gg/manageengine\n\nNEWS SOURCES: https://lmg.gg/z0zge\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 John Ternus takes over as Apple CEO\n1:16 GoPro merges with an optical photonics firm\n2:15 Dyson's $500 camera toothbrush\n4:21 QUICK BITS INTRO\n4:29 NYC restricts AI in schools\n5:03 Acer Predator Atlas 7 and folding concept\n5:30 Firefox gets ad blocking on iOS\n5:49 Roku OLED TVs\n6:20 KAIST hidden camera detector\n6:53 Credits", "It’s Ternus Time", "d81d269c-ba9a-4339-978a-9fd9c6ee5e19", "urj0cSCd514", false, 425, false, "https://www.youtube.com/watch?v=urj0cSCd514", 17, "/downloads/shows/TechLinked/Season 2026/s2026e090300 - It’s Ternus Time.mkv", false, false, 5, [], 98, ~U[2026-09-03 00:27:18Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Sign up with the following links and enjoy the first 6 months of OpManager Nexus free.\nOn-Site: https://lmg.gg/site24x7\nCloud: https://lmg.gg/manageengine\n\nNEWS SOURCES: https://lmg.gg/z0zge\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 John Ternus takes over as Apple CEO\n1:16 GoPro merges with an optical photonics firm\n2:15 Dyson's $500 camera toothbrush\n4:21 QUICK BITS INTRO\n4:29 NYC restricts AI in schools\n5:03 Acer Predator Atlas 7 and folding concept\n5:30 Firefox gets ad blocking on iOS\n5:49 Roku OLED TVs\n6:20 KAIST hidden camera detector\n6:53 Credits", "It’s Ternus Time", "urj0cSCd514", 425, false, "https://www.youtube.com/watch?v=urj0cSCd514", "/downloads/shows/TechLinked/Season 2026/s2026e090300 - It’s Ternus Time.mkv", false, 5, ~U[2026-09-03 00:27:18Z]] 13:21:28.731 [debug] QUERY OK source="sources" db=0.6ms idle=8.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.735 [debug] QUERY OK source="media_items" db=3.3ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-09-01 00:55:00Z], 5] 13:21:28.736 [debug] QUERY OK source="media_items" db=1.0ms idle=10.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLAug26 to get started.\n\nNEWS SOURCES: https://lmg.gg/qC8jz\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam server leak\n1:56 CXMT starts LPDDR6 production\n3:18 Meta tests data center robots\n5:32 QUICK BITS INTRO\n5:39 Anthropic sued over song lyrics\n6:30 Court rules prediction markets are gambling\n7:17 Meta's teen safety ads\n7:52 Sony on digital ownership\n8:52 Robot vacuum affair case\n9:43 Credits", "Is This Valve’s Biggest Leak?", "f726fc8c-d6d8-4685-ad7d-01b3b81ddc6b", "H6UC_ipdX-8", false, 595, false, "https://www.youtube.com/watch?v=H6UC_ipdX-8", 18, "/downloads/shows/TechLinked/Season 2026/s2026e090100 - Is This Valve’s Biggest Leak?.mkv", false, false, 5, [], 98, ~U[2026-09-01 00:55:00Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "If you want to skip the hassle of researching, buying, and building a gaming PC for yourself, buy one from one of Jawa’s Verified Sellers! Visit https://jawa.link/TLAug26 to get started.\n\nNEWS SOURCES: https://lmg.gg/qC8jz\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Steam server leak\n1:56 CXMT starts LPDDR6 production\n3:18 Meta tests data center robots\n5:32 QUICK BITS INTRO\n5:39 Anthropic sued over song lyrics\n6:30 Court rules prediction markets are gambling\n7:17 Meta's teen safety ads\n7:52 Sony on digital ownership\n8:52 Robot vacuum affair case\n9:43 Credits", "Is This Valve’s Biggest Leak?", "H6UC_ipdX-8", 595, false, "https://www.youtube.com/watch?v=H6UC_ipdX-8", "/downloads/shows/TechLinked/Season 2026/s2026e090100 - Is This Valve’s Biggest Leak?.mkv", false, 5, ~U[2026-09-01 00:55:00Z]] 13:21:28.737 [debug] QUERY OK source="sources" db=0.5ms idle=8.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.741 [debug] QUERY OK source="media_items" db=3.6ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-28 23:30:32Z], 5] 13:21:28.743 [debug] QUERY OK source="media_items" db=1.5ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Traditional carriers track your data. Cape protects it with built-in privacy features like IMSI rotation and last-mile encrypted texting.\n\nUse code TECHLINKED and get 33% off your first 6 months: https://cape.co/techlinked\n\nApp Download Links:\nApple: https://lmg.gg/CapeIOS\nGoogle: https://lmg.gg/CapeAndroid\n\nCape is also now available on the Accrescent App Store: https://accrescent.app/\n\nNEWS SOURCES: https://lmg.gg/4zAv1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 leak\n1:35 Nvidia and Hugging Face\n2:26 Anthropic blacklist struck down\n4:16 QUICK BITS INTRO\n4:25 Samsung Odyssey monitors\n5:09 Oura lawsuit\n5:44 Roblox feed ban\n6:18 Playdate tariff refunds\n6:56 Mosquito laser turret\n7:38 Credits", "SLOP FILTER TIME!", "945a79b2-779f-4c64-84c9-ba26487bfe21", "b0OuoDtkpBA", false, 476, false, "https://www.youtube.com/watch?v=b0OuoDtkpBA", 19, "/downloads/shows/TechLinked/Season 2026/s2026e082800 - SLOP FILTER TIME!.mkv", false, false, 5, [], 98, ~U[2026-08-28 23:30:32Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Traditional carriers track your data. Cape protects it with built-in privacy features like IMSI rotation and last-mile encrypted texting.\n\nUse code TECHLINKED and get 33% off your first 6 months: https://cape.co/techlinked\n\nApp Download Links:\nApple: https://lmg.gg/CapeIOS\nGoogle: https://lmg.gg/CapeAndroid\n\nCape is also now available on the Accrescent App Store: https://accrescent.app/\n\nNEWS SOURCES: https://lmg.gg/4zAv1\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 DLSS 5 leak\n1:35 Nvidia and Hugging Face\n2:26 Anthropic blacklist struck down\n4:16 QUICK BITS INTRO\n4:25 Samsung Odyssey monitors\n5:09 Oura lawsuit\n5:44 Roblox feed ban\n6:18 Playdate tariff refunds\n6:56 Mosquito laser turret\n7:38 Credits", "SLOP FILTER TIME!", "b0OuoDtkpBA", 476, false, "https://www.youtube.com/watch?v=b0OuoDtkpBA", "/downloads/shows/TechLinked/Season 2026/s2026e082800 - SLOP FILTER TIME!.mkv", false, 5, ~U[2026-08-28 23:30:32Z]] 13:21:28.744 [debug] QUERY OK source="sources" db=0.3ms idle=7.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.747 [debug] QUERY OK source="media_items" db=3.4ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-27 00:55:27Z], 5] 13:21:28.749 [debug] QUERY OK source="media_items" db=1.0ms idle=8.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev \n\nNEWS SOURCES: https://lmg.gg/R3YOs\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta settles teen addiction lawsuit\n1:23 Apple M6 Mac mini and M5 Mac Studio\n2:37 Twitter kills Nitter\n4:36 QUICK BITS INTRO\n4:45 Norway weighs smart glasses rules\n5:13 Ring's new default encryption\n5:43 Xbox 25th anniversary accessories\n6:08 OpenAI's Broadcom chip benchmarks\n6:45 Apple polishing cloth price cut\n7:12 Credits", "That’s It?", "1305f9b3-71d2-4491-9a10-690dff56e06d", "8FKxfL8EIwM", false, 449, false, "https://www.youtube.com/watch?v=8FKxfL8EIwM", 20, "/downloads/shows/TechLinked/Season 2026/s2026e082700 - That’s It?.mkv", false, false, 5, [], 98, ~U[2026-08-27 00:55:27Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Click this link https://boot.dev/?promo=TECHLINKED and use my code TECHLINKED to get 25% off your first payment for boot.dev \n\nNEWS SOURCES: https://lmg.gg/R3YOs\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 Meta settles teen addiction lawsuit\n1:23 Apple M6 Mac mini and M5 Mac Studio\n2:37 Twitter kills Nitter\n4:36 QUICK BITS INTRO\n4:45 Norway weighs smart glasses rules\n5:13 Ring's new default encryption\n5:43 Xbox 25th anniversary accessories\n6:08 OpenAI's Broadcom chip benchmarks\n6:45 Apple polishing cloth price cut\n7:12 Credits", "That’s It?", "8FKxfL8EIwM", 449, false, "https://www.youtube.com/watch?v=8FKxfL8EIwM", "/downloads/shows/TechLinked/Season 2026/s2026e082700 - That’s It?.mkv", false, 5, ~U[2026-08-27 00:55:27Z]] 13:21:28.750 [debug] QUERY OK source="sources" db=0.6ms idle=8.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:21:28.754 [debug] QUERY OK source="media_items" db=3.4ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-08-25 00:25:07Z], 5] 13:21:28.755 [debug] QUERY OK source="media_items" db=1.1ms idle=10.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to Micro Center for sponsoring this video! Check out their Back to School Tech Deals: https://micro.center/4d8242\n\nSign up for a FREE 128 gig Flash Drive at Micro Center Austin, TX: https://micro.center/268734\n\nCheck Out Micro Center's Columbus, OH Grand Re-Opening: https://micro.center/58281d\n\nVisit Micro Center News: https://micro.center/6490eb\n\nNEWS SOURCES: https://lmg.gg/zIgoh\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 China drops Windows for Linux\n1:08 PlayStation blackout over disc games\n2:06 CXMT accused of stealing Samsung DRAM tech\n4:18 QUICK BITS INTRO\n4:28 Nintendo wipes Switch emulator repos\n5:06 Google restricts sideloading\n5:48 Flock's new people search tool\n6:44 AliExpress audio fingerprinting\n7:25 Cookies made from plastic bottles\n8:10 Credits", "Even China’s done with Windows", "42fad200-6da7-453e-ba3d-375851cea438", "nt3oVGGkfYU", false, 501, false, "https://www.youtube.com/watch?v=nt3oVGGkfYU", 21, "/downloads/shows/TechLinked/Season 2026/s2026e082500 - Even China’s done with Windows.mkv", false, false, 5, [], 98, ~U[2026-08-25 00:25:07Z], ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], "Thanks to Micro Center for sponsoring this video! Check out their Back to School Tech Deals: https://micro.center/4d8242\n\nSign up for a FREE 128 gig Flash Drive at Micro Center Austin, TX: https://micro.center/268734\n\nCheck Out Micro Center's Columbus, OH Grand Re-Opening: https://micro.center/58281d\n\nVisit Micro Center News: https://micro.center/6490eb\n\nNEWS SOURCES: https://lmg.gg/zIgoh\n\n► SHOP OUR PRODUCTS: https://lttstore.com\n► GET EXCLUSIVE CONTENT ON FLOATPLANE: https://lmg.gg/lttfloatplane\n► GET A VPN: https://www.piavpn.com/TechLinked\n► LISTEN TO THE TECH NEWS: https://lmg.gg/TLPodcast\n► DIVE DEEPER ON THE LTT LABS WEBSITE: https://lmg.gg/labs\n► SPONSORS, AFFILIATES, AND PARTNERS: https://lmg.gg/partners\n► OUR PODCAST GEAR: https://lmg.gg/podcastgear\n\n---------------------------------------------------\nTimestamps:\n0:00 China drops Windows for Linux\n1:08 PlayStation blackout over disc games\n2:06 CXMT accused of stealing Samsung DRAM tech\n4:18 QUICK BITS INTRO\n4:28 Nintendo wipes Switch emulator repos\n5:06 Google restricts sideloading\n5:48 Flock's new people search tool\n6:44 AliExpress audio fingerprinting\n7:25 Cookies made from plastic bottles\n8:10 Credits", "Even China’s done with Windows", "nt3oVGGkfYU", 501, false, "https://www.youtube.com/watch?v=nt3oVGGkfYU", "/downloads/shows/TechLinked/Season 2026/s2026e082500 - Even China’s done with Windows.mkv", false, 5, ~U[2026-08-25 00:25:07Z]] 13:21:28.756 [debug] QUERY OK source="sources" db=0.5ms idle=8.4ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z], 5] 13:21:28.760 [debug] QUERY OK source="media_items" db=3.6ms idle=7.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [5] 13:21:28.764 [debug] QUERY OK source="media_items" db=3.5ms idle=10.6ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [5] 13:21:28.765 [debug] QUERY OK source="media_items" db=0.6ms idle=10.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 13:21:28.765 [info] No notification servers provided for source 5 13:21:28.767 [debug] QUERY OK source="tasks" db=0.5ms idle=6.1ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [6588, 5, ~U[2026-10-17 11:21:28Z], ~U[2026-10-17 11:21:28Z]] 13:21:28.768 [info] {"args":{"id":5},"id":6577,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":44091869,"event":"job:stop","queue_time":757489,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 13:21:32.330 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:22:00.197 [info] {"source":"oban","duration":234,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:22:02.331 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:22:32.332 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:23:00.198 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:23:02.333 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:23:32.334 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:24:00.199 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:24:02.335 [info] {"source":"oban","duration":762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:24:32.336 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:25:00.200 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:25:02.337 [info] {"source":"oban","duration":742,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:25:32.338 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:26:00.201 [info] {"source":"oban","duration":225,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:26:02.339 [info] {"source":"oban","duration":756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:26:32.340 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:27:00.202 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:27:02.341 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:27:32.342 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:27:45.892 [info] GET /sitemap.xml 13:27:45.893 [debug] QUERY OK source="settings" db=0.1ms idle=753.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:27:45.893 [debug] QUERY OK source="settings" db=0.1ms idle=399.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:27:45.894 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 13:27:45.894 [error] #PID<0.556751.0> running PinchflatWeb.Endpoint (connection #PID<0.556750.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556750.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60478}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bef4b5fb17b6ed-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556751.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bef4b5fb17b6ed-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9Nke8LBtisgfsAQgwh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556750.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60478}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bef4b5fb17b6ed-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556750.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 60478}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bef4b5fb17b6ed-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556751.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 13:28:00.203 [info] {"source":"oban","duration":168,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:28:02.343 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:28:32.344 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:29:00.204 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:29:02.345 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:29:32.346 [info] {"source":"oban","duration":628,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:29:49.378 [info] GET / 13:29:49.378 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 13:29:49.379 [debug] QUERY OK source="settings" db=0.2ms idle=1884.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:29:49.379 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1884.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 13:29:49.379 [debug] QUERY OK source="sources" db=0.0ms idle=1885.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 13:29:49.382 [debug] QUERY OK source="media_items" db=2.7ms idle=1108.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:29:49.383 [debug] QUERY OK source="media_items" db=0.2ms idle=110.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:29:49.383 [debug] QUERY OK source="settings" db=0.1ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:29:49.383 [debug] QUERY OK source="settings" db=0.1ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:29:49.384 [debug] QUERY OK source="settings" db=0.1ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:29:49.385 [debug] QUERY OK source="tasks" db=0.3ms idle=2.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 13:29:49.386 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:29:49.387 [debug] QUERY OK source="media_items" db=0.4ms idle=2.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:29:49.387 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 13:29:49.393 [debug] QUERY OK source="media_items" db=3.8ms idle=5.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 13:29:49.396 [debug] QUERY OK source="media_items" db=2.0ms queue=0.1ms idle=8.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:29:49.397 [info] Sent 200 in 18ms 13:30:00.205 [info] {"source":"oban","duration":218,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:30:02.347 [info] {"source":"oban","duration":544,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:30:32.348 [info] {"source":"oban","duration":570,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:31:00.206 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:31:02.348 [info] {"source":"oban","duration":470,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:31:32.350 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:32:00.207 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:32:02.351 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:32:32.352 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:33:00.208 [info] {"source":"oban","duration":221,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:33:02.353 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:33:32.354 [info] {"source":"oban","duration":671,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:33:44.303 [info] GET / 13:33:44.303 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 13:33:44.304 [debug] QUERY OK source="settings" db=0.2ms idle=798.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:33:44.304 [debug] QUERY OK source="media_profiles" db=0.1ms idle=798.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 13:33:44.304 [debug] QUERY OK source="sources" db=0.0ms idle=799.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 13:33:44.307 [debug] QUERY OK source="media_items" db=2.5ms idle=799.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:33:44.307 [debug] QUERY OK source="media_items" db=0.2ms idle=794.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:33:44.308 [debug] QUERY OK source="settings" db=0.1ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:33:44.308 [debug] QUERY OK source="settings" db=0.1ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:33:44.309 [debug] QUERY OK source="settings" db=0.1ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:33:44.310 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 13:33:44.310 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:33:44.311 [debug] QUERY OK source="media_items" db=0.4ms idle=2.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:33:44.311 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 13:33:44.318 [debug] QUERY OK source="media_items" db=3.8ms idle=5.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 13:33:44.320 [debug] QUERY OK source="media_items" db=2.0ms idle=8.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:33:44.321 [info] Sent 200 in 18ms 13:33:45.708 [info] GET / 13:33:45.709 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 13:33:45.709 [debug] QUERY OK source="settings" db=0.2ms idle=203.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:33:45.709 [debug] QUERY OK source="media_profiles" db=0.1ms idle=204.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 13:33:45.710 [debug] QUERY OK source="sources" db=0.2ms idle=204.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 13:33:45.711 [debug] QUERY OK source="media_items" db=1.3ms idle=204.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:33:45.712 [debug] QUERY OK source="media_items" db=0.2ms idle=195.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:33:45.712 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:33:45.712 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:33:45.713 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:33:45.714 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 13:33:45.715 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 13:33:45.715 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:33:45.716 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 13:33:45.720 [debug] QUERY OK source="media_items" db=1.2ms idle=5.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 13:33:45.722 [debug] QUERY OK source="media_items" db=1.7ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 13:33:45.723 [info] Sent 200 in 14ms 13:34:00.209 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:34:02.355 [info] {"source":"oban","duration":733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:34:32.359 [info] {"source":"oban","duration":3873,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:35:00.210 [info] {"source":"oban","duration":249,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:35:02.361 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:35:32.362 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:36:00.211 [info] {"source":"oban","duration":245,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:36:02.363 [info] {"source":"oban","duration":718,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:36:32.364 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:37:00.212 [info] {"source":"oban","duration":221,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:37:02.365 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:37:32.366 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:38:00.213 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:38:02.367 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:38:32.368 [info] {"source":"oban","duration":708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:39:00.214 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:39:02.369 [info] {"source":"oban","duration":747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:39:32.370 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:40:00.215 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:40:02.371 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:40:32.372 [info] {"source":"oban","duration":795,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:41:00.216 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:41:02.373 [info] {"source":"oban","duration":723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:41:32.374 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:42:00.217 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:42:02.375 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:42:32.376 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:43:00.218 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:43:02.377 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:43:32.378 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:44:00.219 [info] {"source":"oban","duration":160,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:44:02.379 [info] {"source":"oban","duration":738,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:44:32.380 [info] {"source":"oban","duration":635,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:45:00.220 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:45:02.381 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:45:32.382 [info] {"source":"oban","duration":743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:46:00.221 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:46:02.383 [info] {"source":"oban","duration":726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:46:32.383 [info] {"source":"oban","duration":475,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:47:00.222 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:47:02.385 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:47:32.386 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:48:00.223 [info] {"source":"oban","duration":245,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:48:02.387 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:48:32.388 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:49:00.224 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:49:02.389 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:49:32.390 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:50:00.225 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:50:02.391 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:50:32.392 [info] {"source":"oban","duration":805,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:51:00.226 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:51:02.393 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:51:32.394 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:51:40.457 [info] GET /sources/3/media/256408 13:51:40.457 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256408", "source_id" => "3"} Pipelines: [:browser] 13:51:40.457 [debug] QUERY OK source="media_items" db=0.2ms idle=934.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" = ?) [256408] 13:51:40.458 [debug] QUERY OK source="tasks" db=0.2ms idle=935.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" [256408] 13:51:40.458 [debug] QUERY OK source="sources" db=0.3ms idle=935.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 13:51:40.459 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=936.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6569, 6584] 13:51:40.459 [debug] QUERY OK source="settings" db=0.1ms idle=720.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:51:40.460 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:51:40.460 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:51:40.461 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:51:40.463 [info] Sent 200 in 6ms 13:52:00.227 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:52:00.332 [info] GET /sources/5/media/253343 13:52:00.332 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "253343", "source_id" => "5"} Pipelines: [:browser] 13:52:00.333 [debug] QUERY OK source="media_items" db=0.2ms idle=810.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" = ?) [253343] 13:52:00.334 [debug] QUERY OK source="tasks" db=0.2ms idle=811.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" [253343] 13:52:00.334 [debug] QUERY OK source="sources" db=0.4ms idle=811.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:52:00.334 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=574.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6523, 6538] 13:52:00.335 [debug] QUERY OK source="settings" db=0.1ms idle=107.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:00.335 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:00.336 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:00.336 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:52:00.339 [info] Sent 200 in 6ms 13:52:00.433 [info] GET /sources/5/media/251079 13:52:00.433 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "251079", "source_id" => "5"} Pipelines: [:browser] 13:52:00.436 [debug] QUERY OK source="media_items" db=2.4ms idle=98.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" = ?) [251079] 13:52:00.437 [debug] QUERY OK source="tasks" db=0.8ms idle=101.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" [251079] 13:52:00.438 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=101.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:52:00.442 [debug] QUERY OK source="oban_jobs" db=1.2ms idle=105.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6485, 6500] 13:52:00.445 [debug] QUERY OK source="settings" db=0.5ms idle=107.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:00.446 [debug] QUERY OK source="settings" db=0.6ms idle=9.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:00.448 [debug] QUERY OK source="settings" db=1.0ms idle=9.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:00.450 [debug] QUERY OK source="media_profiles" db=1.3ms idle=10.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:52:00.453 [info] Sent 200 in 20ms 13:52:02.395 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:52:29.826 [info] GET /sources/5/media/256067 13:52:29.826 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256067", "source_id" => "5"} Pipelines: [:browser] 13:52:29.827 [debug] QUERY OK source="media_items" db=0.3ms idle=304.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" = ?) [256067] 13:52:29.828 [debug] QUERY OK source="tasks" db=0.2ms idle=305.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" [256067] 13:52:29.828 [debug] QUERY OK source="sources" db=0.7ms idle=305.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:52:29.829 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=306.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6565, 6583] 13:52:29.830 [debug] QUERY OK source="settings" db=0.3ms idle=39.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:29.830 [debug] QUERY OK source="settings" db=0.4ms 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 [] 13:52:29.831 [debug] QUERY OK source="settings" db=0.6ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:29.832 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:52:29.835 [info] Sent 200 in 8ms 13:52:30.130 [info] GET /sources/5/media/252167 13:52:30.130 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "252167", "source_id" => "5"} Pipelines: [:browser] 13:52:30.131 [debug] QUERY OK source="media_items" db=0.2ms idle=301.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" = ?) [252167] 13:52:30.131 [debug] QUERY OK source="tasks" db=0.1ms idle=301.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" [252167] 13:52:30.131 [debug] QUERY OK source="sources" db=0.2ms idle=300.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:52:30.132 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=300.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6503, 6520] 13:52:30.132 [debug] QUERY OK source="settings" db=0.1ms idle=299.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:30.132 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:30.133 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:52:30.134 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:52:30.136 [info] Sent 200 in 5ms 13:52:32.396 [info] {"source":"oban","duration":710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:53:00.228 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:53:02.397 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:53:32.398 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:53:45.963 [info] GET /settings 13:53:45.963 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 13:53:45.964 [debug] QUERY OK source="settings" db=0.1ms idle=441.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:45.964 [debug] QUERY OK source="settings" db=0.1ms idle=441.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:45.964 [debug] QUERY OK source="settings" db=0.1ms idle=442.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:45.965 [debug] QUERY OK source="settings" db=0.2ms idle=442.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:45.967 [info] Sent 200 in 3ms 13:53:51.303 [info] GET /sources 13:53:51.303 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 13:53:51.304 [debug] QUERY OK source="settings" db=0.1ms idle=1781.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:51.304 [debug] QUERY OK source="settings" db=0.1ms idle=1781.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:51.305 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1782.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:51.306 [debug] QUERY OK source="settings" db=0.5ms idle=1430.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:51.306 [debug] QUERY OK source="settings" db=0.1ms idle=430.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:51.309 [debug] QUERY OK source="sources" db=1.9ms idle=2.8ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 13:53:51.312 [debug] QUERY OK source="sources" db=2.4ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 13:53:51.315 [info] Sent 200 in 12ms 13:53:57.877 [info] GET /app_info 13:53:57.877 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 13:53:57.878 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1355.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:57.878 [debug] QUERY OK source="settings" db=0.1ms idle=1355.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:57.878 [debug] QUERY OK source="settings" db=0.1ms idle=1356.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:57.879 [debug] QUERY OK source="settings" db=0.0ms idle=1356.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:57.879 [debug] QUERY OK source="settings" db=0.1ms idle=996.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:57.880 [info] Sent 200 in 3ms 13:53:57.990 [info] GET /media_profiles 13:53:57.990 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 13:53:57.991 [debug] QUERY OK source="media_profiles" db=0.2ms idle=112.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", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 13:53:57.991 [debug] QUERY OK source="settings" db=0.1ms idle=112.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:57.991 [debug] QUERY OK source="settings" db=0.0ms idle=111.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:57.992 [debug] QUERY OK source="settings" db=0.1ms idle=112.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:53:57.993 [info] Sent 200 in 3ms 13:54:00.229 [info] {"source":"oban","duration":218,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:54:02.399 [info] {"source":"oban","duration":745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:54:16.605 [info] GET /sources/3 13:54:16.605 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 13:54:16.606 [debug] QUERY OK source="sources" db=0.2ms idle=1083.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 13:54:16.606 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1083.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:54:16.607 [debug] QUERY OK source="tasks" db=0.2ms idle=1084.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 13:54:16.607 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1084.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6585] 13:54:16.607 [debug] QUERY OK source="settings" db=0.1ms idle=704.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:54:16.608 [debug] QUERY OK source="settings" db=0.2ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:54:16.608 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:54:16.610 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 13:54:16.610 [debug] QUERY OK source="media_items" db=0.3ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 13:54:16.611 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [3, 10, 0] 13:54:16.613 [debug] QUERY OK source="sources" db=0.8ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 13:54:16.613 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 13:54:16.614 [debug] QUERY OK source="media_items" db=0.3ms idle=3.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 13:54:16.615 [debug] QUERY OK source="sources" db=0.1ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 13:54:16.615 [debug] QUERY OK source="media_items" db=0.3ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [3] 13:54:16.616 [debug] QUERY OK source="media_items" db=0.6ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 13:54:16.618 [info] Sent 200 in 13ms 13:54:16.957 [info] GET /sources/5 13:54:16.957 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 13:54:16.958 [debug] QUERY OK source="sources" db=0.2ms idle=344.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:54:16.958 [debug] QUERY OK source="media_profiles" db=0.1ms idle=343.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 13:54:16.959 [debug] QUERY OK source="tasks" db=0.3ms idle=343.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 (?,?,?,?)) [5, "executing", "available", "scheduled", "retryable"] 13:54:16.959 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=343.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6588] 13:54:16.960 [debug] QUERY OK source="settings" db=0.1ms idle=55.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:54:16.960 [debug] QUERY OK source="settings" db=0.2ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:54:16.961 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 13:54:16.962 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:54:16.964 [debug] QUERY OK source="media_items" db=1.3ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [5] 13:54:16.966 [debug] QUERY OK source="media_items" db=1.7ms idle=4.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 13:54:16.967 [debug] QUERY OK source="sources" db=0.1ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:54:16.967 [debug] QUERY OK source="media_items" db=0.3ms idle=6.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 13:54:16.970 [debug] QUERY OK source="media_items" db=2.5ms idle=5.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 13:54:16.971 [debug] QUERY OK source="sources" db=0.1ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 13:54:16.973 [debug] QUERY OK source="media_items" db=1.2ms idle=5.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [5] 13:54:16.975 [debug] QUERY OK source="media_items" db=1.8ms idle=6.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 13:54:16.977 [info] Sent 200 in 19ms 13:54:32.400 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:55:00.230 [info] {"source":"oban","duration":219,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:55:02.401 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:55:32.402 [info] {"source":"oban","duration":855,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:56:00.231 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:56:02.404 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:56:32.405 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:57:00.232 [info] {"source":"oban","duration":226,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:57:02.406 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:57:32.407 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:58:00.233 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:58:02.408 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:58:32.409 [info] {"source":"oban","duration":657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:59:00.234 [info] {"source":"oban","duration":136,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 13:59:02.410 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 13:59:32.411 [info] {"source":"oban","duration":790,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:00:00.236 [info] {"source":"oban","duration":604,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:00:02.412 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:00:32.413 [info] {"source":"oban","duration":600,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:01:00.236 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:01:02.414 [info] {"source":"oban","duration":503,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:01:32.415 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:02:00.237 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:02:02.416 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:02:24.635 [info] GET /sitemap.xml 14:02:24.635 [debug] QUERY OK source="settings" db=0.2ms idle=1111.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:02:24.636 [debug] QUERY OK source="settings" db=0.1ms idle=1112.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:02:24.636 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:02:24.636 [error] #PID<0.556980.0> running PinchflatWeb.Endpoint (connection #PID<0.556979.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 54648}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf27763f2207d6-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556980.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf27763f2207d6-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9Pde27PU9ZtwwAQhpB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 54648}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf27763f2207d6-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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 /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.556979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 54648}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf27763f2207d6-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.556980.0>, params: %{}, path_info: ["sitemap"], path_params: %{} (truncated) 14:02:32.417 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:03:00.238 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:03:02.418 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:03:32.419 [info] {"source":"oban","duration":749,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:04:00.239 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:04:02.420 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:04:32.421 [info] {"source":"oban","duration":706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:05:00.240 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:05:02.422 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:05:32.423 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:06:00.242 [info] {"source":"oban","duration":1022,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:06:02.424 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:06:32.425 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:07:00.243 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:07:02.426 [info] {"source":"oban","duration":985,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 14:07:32.428 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:08:00.244 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:08:02.429 [info] {"source":"oban","duration":738,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:08:32.430 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:09:00.245 [info] {"source":"oban","duration":196,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:09:02.431 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:09:32.432 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:10:00.246 [info] {"source":"oban","duration":192,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:10:02.433 [info] {"source":"oban","duration":684,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:10:32.434 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:11:00.247 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:11:02.435 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:11:32.436 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:12:00.248 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:12:02.437 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:12:32.438 [info] {"source":"oban","duration":733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:13:00.249 [info] {"source":"oban","duration":158,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:13:02.439 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:13:32.440 [info] {"source":"oban","duration":696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:13:35.398 [info] GET / 14:13:35.399 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 14:13:35.399 [debug] QUERY OK source="settings" db=0.3ms idle=1843.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:35.400 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.3ms idle=1844.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 14:13:35.401 [debug] QUERY OK source="sources" db=0.4ms idle=1844.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 14:13:35.402 [debug] QUERY OK source="media_items" db=0.6ms idle=1183.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 14:13:35.402 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=182.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 14:13:35.403 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:35.403 [debug] QUERY OK source="settings" db=0.3ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:35.404 [debug] QUERY OK source="settings" db=0.3ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:35.405 [debug] QUERY OK source="tasks" db=0.3ms idle=3.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 14:13:35.406 [debug] QUERY OK source="media_items" db=0.4ms idle=3.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 14:13:35.407 [debug] QUERY OK source="media_items" db=0.5ms idle=3.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 14:13:35.408 [debug] QUERY OK source="sources" db=0.4ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 14:13:35.416 [debug] QUERY OK source="media_items" db=3.9ms idle=8.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 14:13:35.419 [debug] QUERY OK source="media_items" db=1.9ms queue=0.1ms idle=11.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 14:13:35.420 [info] Sent 200 in 21ms 14:13:42.181 [info] GET / 14:13:42.181 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 14:13:42.182 [debug] QUERY OK source="settings" db=0.1ms idle=1626.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:42.182 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1626.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 14:13:42.182 [debug] QUERY OK source="sources" db=0.0ms idle=1626.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 14:13:42.185 [debug] QUERY OK source="media_items" db=2.5ms idle=1627.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 14:13:42.185 [debug] QUERY OK source="media_items" db=0.2ms idle=960.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 14:13:42.186 [debug] QUERY OK source="settings" db=0.1ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:42.186 [debug] QUERY OK source="settings" db=0.1ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:42.186 [debug] QUERY OK source="settings" db=0.0ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:42.187 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 14:13:42.188 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 14:13:42.189 [debug] QUERY OK source="media_items" db=0.5ms idle=2.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 14:13:42.189 [debug] QUERY OK source="sources" db=0.2ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 14:13:42.196 [debug] QUERY OK source="media_items" db=3.5ms idle=5.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 14:13:42.198 [debug] QUERY OK source="media_items" db=2.0ms idle=8.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 14:13:42.199 [info] Sent 200 in 17ms 14:13:44.535 [info] GET / 14:13:44.535 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 14:13:44.536 [debug] QUERY OK source="settings" db=0.2ms idle=980.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:44.536 [debug] QUERY OK source="media_profiles" db=0.1ms idle=980.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 14:13:44.536 [debug] QUERY OK source="sources" db=0.1ms idle=981.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 14:13:44.539 [debug] QUERY OK source="media_items" db=2.7ms idle=981.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 14:13:44.540 [debug] QUERY OK source="media_items" db=0.2ms idle=311.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 14:13:44.540 [debug] QUERY OK source="settings" db=0.1ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:44.540 [debug] QUERY OK source="settings" db=0.1ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:44.541 [debug] QUERY OK source="settings" db=0.0ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:13:44.542 [debug] QUERY OK source="tasks" db=0.2ms idle=2.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 14:13:44.542 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 14:13:44.543 [debug] QUERY OK source="media_items" db=0.3ms idle=2.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 14:13:44.544 [debug] QUERY OK source="sources" db=0.2ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [5, 3] 14:13:44.548 [debug] QUERY OK source="media_items" db=1.2ms idle=5.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 14:13:44.550 [debug] QUERY OK source="media_items" db=2.1ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 14:13:44.551 [info] Sent 200 in 15ms 14:14:00.250 [info] {"source":"oban","duration":102,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:14:02.441 [info] {"source":"oban","duration":828,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:14:32.443 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:15:00.251 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:15:02.444 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:15:32.445 [info] {"source":"oban","duration":562,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:16:00.252 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:16:02.445 [info] {"source":"oban","duration":470,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:16:32.447 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:17:00.253 [info] {"source":"oban","duration":210,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:17:02.448 [info] {"source":"oban","duration":770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:17:32.449 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:18:00.254 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:18:02.450 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:18:32.451 [info] {"source":"oban","duration":801,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:19:00.255 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:19:02.452 [info] {"source":"oban","duration":737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:19:32.453 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:20:00.256 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:20:02.454 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:20:32.455 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:21:00.257 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:21:02.456 [info] {"source":"oban","duration":631,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:21:32.457 [info] {"source":"oban","duration":741,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:22:00.258 [info] {"source":"oban","duration":211,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:22:02.458 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:22:32.459 [info] {"source":"oban","duration":623,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:23:00.259 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:23:02.460 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:23:32.461 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:24:00.260 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:24:02.462 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:24:32.463 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:25:00.261 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:25:02.464 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:25:32.465 [info] {"source":"oban","duration":649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:26:00.262 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:26:02.466 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:26:32.467 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:27:00.263 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:27:02.468 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:27:32.469 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:28:00.264 [info] {"source":"oban","duration":134,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:28:02.470 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:28:32.471 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:29:00.265 [info] {"source":"oban","duration":211,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:29:02.472 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:29:32.473 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:30:00.266 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:30:02.474 [info] {"source":"oban","duration":722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:30:32.475 [info] {"source":"oban","duration":744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:31:00.267 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:31:02.476 [info] {"source":"oban","duration":499,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:31:27.789 [info] GET /sources/5/media/251079 14:31:27.790 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "251079", "prevent_download" => "true", "source_id" => "5"} Pipelines: [:browser] 14:31:27.790 [debug] QUERY OK source="media_items" db=0.2ms idle=350.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" = ?) [251079] 14:31:27.791 [debug] QUERY OK source="tasks" db=0.2ms idle=220.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" [251079] 14:31:27.791 [debug] QUERY OK source="sources" db=0.5ms idle=220.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:31:27.792 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=221.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6485, 6500] 14:31:27.793 [debug] QUERY OK source="settings" db=0.2ms idle=222.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:31:27.793 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:31:27.794 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:31:27.794 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:31:27.797 [info] Sent 200 in 7ms 14:31:28.021 [info] GET /media/935df2f5-811a-48b6-913c-f38f94137089/stream 14:31:28.022 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "935df2f5-811a-48b6-913c-f38f94137089"} Pipelines: [:maybe_basic_auth] 14:31:28.025 [debug] QUERY OK source="media_items" db=2.6ms idle=230.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" = ?) ["935df2f5-811a-48b6-913c-f38f94137089"] 14:31:28.025 [debug] Invalid range request for media item: 935df2f5-811a-48b6-913c-f38f94137089 - serving full file 14:31:28.026 [info] Sent 200 in 4ms 14:31:32.477 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:31:57.770 [info] GET /sources/3/media/256408/force_download 14:31:57.771 [debug] QUERY OK source="settings" db=0.2ms idle=299.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:31:57.771 [debug] QUERY OK source="settings" db=0.1ms idle=200.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:31:57.771 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:31:57.771 [error] #PID<0.557156.0> running PinchflatWeb.Endpoint (connection #PID<0.557155.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/media/256408/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/3/media/256408/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557155.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/256408/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55404}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf52c21f1dc77b-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557156.0>, params: %{}, path_info: ["sources", "3", "media", "256408", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf52c21f1dc77b-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sources/3/media/256408/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9REsTVw3B1tmAAQiJB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557155.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/256408/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55404}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf52c21f1dc77b-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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/3/media/256408/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557155.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/256408/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55404}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf52c21f1dc77b-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, (truncated) 14:32:00.268 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:32:02.477 [info] {"source":"oban","duration":443,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:32:24.104 [info] GET /sources/3/media/256408/edit 14:32:24.105 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "256408", "source_id" => "3"} Pipelines: [:browser] 14:32:24.111 [debug] QUERY OK source="media_items" db=0.5ms queue=4.9ms idle=607.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" = ?) [256408] 14:32:24.113 [debug] QUERY OK source="settings" db=1.8ms idle=541.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:32:24.116 [debug] QUERY OK source="settings" db=0.8ms queue=1.1ms idle=543.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:32:24.116 [debug] QUERY OK source="settings" db=0.3ms idle=545.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:32:24.119 [info] Sent 200 in 14ms 14:32:32.479 [info] {"source":"oban","duration":743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:32:58.303 [info] GET /sources/5/media/253343/force_download 14:32:58.304 [debug] QUERY OK source="settings" db=0.3ms idle=771.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:32:58.304 [debug] QUERY OK source="settings" db=0.2ms idle=733.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:32:58.304 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:32:58.305 [error] #PID<0.557166.0> running PinchflatWeb.Endpoint (connection #PID<0.557165.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/media/253343/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/5/media/253343/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557165.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/253343/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 58578}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf543acb55cf75-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557166.0>, params: %{}, path_info: ["sources", "5", "media", "253343", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf543acb55cf75-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sources/5/media/253343/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RINzlJCK-9l0AQiLh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557165.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/253343/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 58578}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf543acb55cf75-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, 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/media/253343/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557165.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/253343/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 58578}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf543acb55cf75-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, coo (truncated) 14:32:59.682 [info] GET /sources/5/media/251079/edit 14:32:59.682 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "251079", "source_id" => "5"} Pipelines: [:browser] 14:32:59.683 [debug] QUERY OK source="media_items" db=0.4ms idle=148.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" = ?) [251079] 14:32:59.683 [debug] QUERY OK source="settings" db=0.1ms idle=113.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:32:59.684 [debug] QUERY OK source="settings" db=0.1ms idle=113.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:32:59.684 [debug] QUERY OK source="settings" db=0.1ms idle=113.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:32:59.686 [info] Sent 200 in 3ms 14:33:00.152 [info] GET /sources/5/media/253343 14:33:00.153 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "253343", "prevent_download" => "true", "source_id" => "5"} Pipelines: [:browser] 14:33:00.153 [debug] QUERY OK source="media_items" db=0.2ms idle=582.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" = ?) [253343] 14:33:00.154 [debug] QUERY OK source="tasks" db=0.2ms idle=470.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" [253343] 14:33:00.154 [debug] QUERY OK source="sources" db=0.5ms idle=470.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:33:00.155 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=470.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6523, 6538] 14:33:00.156 [debug] QUERY OK source="settings" db=0.5ms idle=471.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:33:00.156 [debug] QUERY OK source="settings" db=0.2ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:33:00.157 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:33:00.158 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:33:00.160 [info] Sent 200 in 7ms 14:33:00.269 [info] {"source":"oban","duration":165,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:33:02.480 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:33:27.114 [info] GET /media/3047b919-9cbf-4f01-9fbe-5c922beed059/stream 14:33:27.114 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "3047b919-9cbf-4f01-9fbe-5c922beed059"} Pipelines: [:maybe_basic_auth] 14:33:27.115 [debug] QUERY OK source="media_items" db=0.6ms idle=1544.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" = ?) ["3047b919-9cbf-4f01-9fbe-5c922beed059"] 14:33:27.115 [debug] Invalid range request for media item: 3047b919-9cbf-4f01-9fbe-5c922beed059 - serving full file 14:33:27.115 [info] Sent 200 in 1ms 14:33:27.482 [info] GET /media/07010e94-057d-4dc4-b203-4d69af1d8988/stream 14:33:27.482 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "07010e94-057d-4dc4-b203-4d69af1d8988"} Pipelines: [:maybe_basic_auth] 14:33:27.483 [debug] QUERY OK source="media_items" db=0.3ms idle=1912.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" = ?) ["07010e94-057d-4dc4-b203-4d69af1d8988"] 14:33:27.483 [debug] Invalid range request for media item: 07010e94-057d-4dc4-b203-4d69af1d8988 - serving full file 14:33:27.483 [info] Sent 200 in 1ms 14:33:32.481 [info] {"source":"oban","duration":814,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:34:00.270 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:34:02.482 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:34:32.483 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:34:43.742 [info] GET /sources/5/media/253343/edit 14:34:43.742 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "253343", "source_id" => "5"} Pipelines: [:browser] 14:34:43.742 [debug] QUERY OK source="media_items" db=0.3ms idle=171.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" = ?) [253343] 14:34:43.743 [debug] QUERY OK source="settings" db=0.1ms idle=172.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:34:43.743 [debug] QUERY OK source="settings" db=0.2ms idle=172.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:34:43.744 [debug] QUERY OK source="settings" db=0.5ms idle=173.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:34:43.746 [info] Sent 200 in 4ms 14:34:44.119 [info] GET /sources/5/media/251079/force_download 14:34:44.119 [debug] QUERY OK source="settings" db=0.1ms idle=473.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:34:44.120 [debug] QUERY OK source="settings" db=0.1ms idle=377.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:34:44.120 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:34:44.120 [error] #PID<0.557188.0> running PinchflatWeb.Endpoint (connection #PID<0.557186.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/media/251079/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/5/media/251079/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557186.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/251079/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 48304}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf56d1cf1b3cd0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYNTJGUXRDQTZRUHNrRGRGRVYtd2IyUFdE.LiOyftBB_q9psrV72qqbEJ_zvUPp02ZN-tK8AtMRu_0", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYNTJGUXRDQTZRUHNrRGRGRVYtd2IyUFdE.LiOyftBB_q9psrV72qqbEJ_zvUPp02ZN-tK8AtMRu_0" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557188.0>, params: %{}, path_info: ["sources", "5", "media", "251079", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYNTJGUXRDQTZRUHNrRGRGRVYtd2IyUFdE.LiOyftBB_q9psrV72qqbEJ_zvUPp02ZN-tK8AtMRu_0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf56d1cf1b3cd0-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYNTJGUXRDQTZRUHNrRGRGRVYtd2IyUFdE.LiOyftBB_q9psrV72qqbEJ_zvUPp02ZN-tK8AtMRu_0"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sources/5/media/251079/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9ROYAC94aENXgAQiSh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557186.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/251079/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 48304}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf56d1cf1b3cd0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYNTJGUXRDQTZRUHNrRGRGRVYtd2IyUFdE.LiOyftBB_q9psrV72qqbEJ_zvUPp02ZN-tK8AtMRu_0", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, 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/5/media/251079/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557186.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/251079/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 48304}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf56d1cf1b3cd0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", (truncated) 14:34:44.620 [info] GET /sources/3/media/256408 14:34:44.621 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256408", "prevent_download" => "true", "source_id" => "3"} Pipelines: [:browser] 14:34:44.621 [debug] QUERY OK source="media_items" db=0.2ms idle=877.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" = ?) [256408] 14:34:44.622 [debug] QUERY OK source="tasks" db=0.2ms idle=878.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" [256408] 14:34:44.622 [debug] QUERY OK source="sources" db=0.1ms idle=877.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:34:44.622 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=502.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6569, 6584] 14:34:44.623 [debug] QUERY OK source="settings" db=0.1ms idle=502.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:34:44.623 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:34:44.624 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:34:44.625 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:34:44.627 [info] Sent 200 in 6ms 14:35:00.271 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:35:02.484 [info] {"source":"oban","duration":770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:35:15.931 [info] GET /sources/3/media/225855 14:35:15.931 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "225855", "source_id" => "3"} Pipelines: [:browser] 14:35:15.932 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1361.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" = ?) [225855] 14:35:15.933 [debug] QUERY OK source="tasks" db=0.2ms idle=1254.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" [225855] 14:35:15.933 [debug] QUERY OK source="sources" db=0.4ms idle=362.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:35:15.933 [debug] QUERY OK source="settings" db=0.1ms idle=363.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:15.934 [debug] QUERY OK source="settings" db=0.4ms idle=254.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:15.934 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:15.935 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:15.937 [info] Sent 200 in 5ms 14:35:16.404 [info] GET /sources/3/media/225855/edit 14:35:16.405 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "225855", "source_id" => "3"} Pipelines: [:browser] 14:35:16.405 [debug] QUERY OK source="media_items" db=0.3ms idle=471.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" = ?) [225855] 14:35:16.406 [debug] QUERY OK source="settings" db=0.1ms idle=472.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:16.406 [debug] QUERY OK source="settings" db=0.1ms idle=472.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:16.407 [debug] QUERY OK source="settings" db=0.0ms idle=471.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:16.408 [info] Sent 200 in 3ms 14:35:16.903 [info] GET /sources/3/media/244694/edit 14:35:16.903 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "244694", "source_id" => "3"} Pipelines: [:browser] 14:35:16.903 [debug] QUERY OK source="media_items" db=0.2ms idle=497.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" = ?) [244694] 14:35:16.904 [debug] QUERY OK source="settings" db=0.1ms idle=497.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:16.904 [debug] QUERY OK source="settings" db=0.0ms idle=497.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:16.905 [debug] QUERY OK source="settings" db=0.1ms idle=497.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:16.906 [info] Sent 200 in 3ms 14:35:17.396 [info] GET /sources/5/media/247192 14:35:17.396 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "247192", "source_id" => "5"} Pipelines: [:browser] 14:35:17.397 [debug] QUERY OK source="media_items" db=0.2ms idle=716.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" = ?) [247192] 14:35:17.397 [debug] QUERY OK source="tasks" db=0.1ms idle=493.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" [247192] 14:35:17.397 [debug] QUERY OK source="sources" db=0.2ms idle=493.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:35:17.398 [debug] QUERY OK source="settings" db=0.1ms idle=493.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:17.398 [debug] QUERY OK source="settings" db=0.1ms idle=493.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:17.398 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:17.399 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:17.401 [info] Sent 200 in 4ms 14:35:17.899 [info] GET /sources/5/media/249446 14:35:17.900 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "249446", "source_id" => "5"} Pipelines: [:browser] 14:35:17.900 [debug] QUERY OK source="media_items" db=0.2ms idle=502.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" = ?) [249446] 14:35:17.901 [debug] QUERY OK source="tasks" db=0.2ms idle=502.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" [249446] 14:35:17.901 [debug] QUERY OK source="sources" db=0.5ms idle=502.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:35:17.902 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=502.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6459, 6474] 14:35:17.902 [debug] QUERY OK source="settings" db=0.0ms idle=221.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:17.902 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:17.903 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:17.904 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:17.906 [info] Sent 200 in 6ms 14:35:21.897 [info] GET /sources/3/media/240776 14:35:21.898 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "240776", "source_id" => "3"} Pipelines: [:browser] 14:35:21.898 [debug] QUERY OK source="media_items" db=0.2ms idle=327.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" = ?) [240776] 14:35:21.899 [debug] QUERY OK source="sources" db=0.2ms idle=328.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:35:21.899 [debug] QUERY OK source="tasks" db=0.4ms idle=328.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" [240776] 14:35:21.900 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=329.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" = ?) [6325] 14:35:21.900 [debug] QUERY OK source="settings" db=0.3ms idle=215.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:21.901 [debug] QUERY OK source="settings" db=0.2ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:21.901 [debug] QUERY OK source="settings" db=0.2ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:21.902 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:21.904 [info] Sent 200 in 6ms 14:35:22.352 [info] GET /sources/5/media/247192/edit 14:35:22.352 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "247192", "source_id" => "5"} Pipelines: [:browser] 14:35:22.353 [debug] QUERY OK source="media_items" db=0.2ms idle=452.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" = ?) [247192] 14:35:22.353 [debug] QUERY OK source="settings" db=0.1ms idle=452.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:22.353 [debug] QUERY OK source="settings" db=0.0ms idle=452.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:22.354 [debug] QUERY OK source="settings" db=0.0ms idle=452.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:22.355 [info] Sent 200 in 3ms 14:35:22.845 [info] GET /sources/3/media/240776/edit 14:35:22.845 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "240776", "source_id" => "3"} Pipelines: [:browser] 14:35:22.846 [debug] QUERY OK source="media_items" db=0.2ms idle=493.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" = ?) [240776] 14:35:22.846 [debug] QUERY OK source="settings" db=0.1ms idle=493.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:22.847 [debug] QUERY OK source="settings" db=0.0ms idle=493.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:22.847 [debug] QUERY OK source="settings" db=0.0ms idle=493.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:22.848 [info] Sent 200 in 3ms 14:35:23.356 [info] GET /sources/5/media/249446/edit 14:35:23.356 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "249446", "source_id" => "5"} Pipelines: [:browser] 14:35:23.357 [debug] QUERY OK source="media_items" db=0.7ms idle=670.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" = ?) [249446] 14:35:23.358 [debug] QUERY OK source="settings" db=0.4ms idle=511.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:23.358 [debug] QUERY OK source="settings" db=0.2ms idle=511.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:23.359 [debug] QUERY OK source="settings" db=0.1ms queue=0.3ms idle=512.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:23.361 [info] Sent 200 in 4ms 14:35:23.856 [info] GET /sources/3/media/229628 14:35:23.856 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "229628", "source_id" => "3"} Pipelines: [:browser] 14:35:23.857 [debug] QUERY OK source="media_items" db=0.2ms idle=499.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" = ?) [229628] 14:35:23.857 [debug] QUERY OK source="tasks" db=0.1ms idle=499.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" [229628] 14:35:23.858 [debug] QUERY OK source="sources" db=0.2ms idle=498.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:35:23.858 [debug] QUERY OK source="settings" db=0.1ms idle=498.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:23.858 [debug] QUERY OK source="settings" db=0.1ms idle=171.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:23.859 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:23.860 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:23.861 [info] Sent 200 in 4ms 14:35:24.355 [info] GET /sources/3/media/244694 14:35:24.355 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "244694", "source_id" => "3"} Pipelines: [:browser] 14:35:24.355 [debug] QUERY OK source="media_items" db=0.2ms idle=497.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" = ?) [244694] 14:35:24.356 [debug] QUERY OK source="tasks" db=0.2ms idle=497.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" [244694] 14:35:24.357 [debug] QUERY OK source="sources" db=0.8ms idle=497.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:35:24.358 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=498.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6375, 6392] 14:35:24.358 [debug] QUERY OK source="settings" db=0.5ms idle=498.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:24.359 [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 [] 14:35:24.360 [debug] QUERY OK source="settings" db=0.5ms 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 [] 14:35:24.361 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:24.363 [info] Sent 200 in 8ms 14:35:24.871 [info] GET /sources/3/media/229628/edit 14:35:24.871 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "229628", "source_id" => "3"} Pipelines: [:browser] 14:35:24.871 [debug] QUERY OK source="media_items" db=0.2ms idle=512.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" = ?) [229628] 14:35:24.872 [debug] QUERY OK source="settings" db=0.1ms idle=512.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:24.872 [debug] QUERY OK source="settings" db=0.1ms idle=512.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:24.873 [debug] QUERY OK source="settings" db=0.1ms idle=511.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:24.874 [info] Sent 200 in 3ms 14:35:32.485 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:35:47.767 [info] GET /sources/3/media/237089 14:35:47.768 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "237089", "source_id" => "3"} Pipelines: [:browser] 14:35:47.768 [debug] QUERY OK source="media_items" db=0.2ms idle=1197.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" = ?) [237089] 14:35:47.768 [debug] QUERY OK source="tasks" db=0.1ms idle=1198.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" [237089] 14:35:47.769 [debug] QUERY OK source="sources" db=0.1ms idle=1053.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:35:47.769 [debug] QUERY OK source="settings" db=0.1ms idle=198.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:47.769 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=53.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:47.770 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:47.771 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:47.772 [info] Sent 200 in 4ms 14:35:48.157 [info] GET /sources/3/media/233329 14:35:48.157 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "233329", "source_id" => "3"} Pipelines: [:browser] 14:35:48.158 [debug] QUERY OK source="media_items" db=0.2ms idle=389.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" = ?) [233329] 14:35:48.159 [debug] QUERY OK source="tasks" db=0.1ms idle=389.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" [233329] 14:35:48.159 [debug] QUERY OK source="sources" db=0.3ms idle=389.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:35:48.159 [debug] QUERY OK source="settings" db=0.1ms idle=388.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:48.160 [debug] QUERY OK source="settings" db=0.3ms idle=388.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:48.161 [debug] QUERY OK source="settings" db=0.6ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:48.162 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:48.163 [info] Sent 200 in 5ms 14:35:48.649 [info] GET /sources/3/media/248507 14:35:48.649 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "248507", "source_id" => "3"} Pipelines: [:browser] 14:35:48.650 [debug] QUERY OK source="media_items" db=0.2ms idle=491.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" = ?) [248507] 14:35:48.651 [debug] QUERY OK source="tasks" db=0.3ms idle=491.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" [248507] 14:35:48.651 [debug] QUERY OK source="sources" db=0.2ms idle=490.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:35:48.652 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=490.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6442, 6456] 14:35:48.652 [debug] QUERY OK source="settings" db=0.1ms idle=490.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:48.652 [debug] QUERY OK source="settings" db=0.0ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:48.653 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:48.654 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:48.656 [info] Sent 200 in 6ms 14:35:49.160 [info] GET /sources/3/media/248507/edit 14:35:49.160 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "248507", "source_id" => "3"} Pipelines: [:browser] 14:35:49.161 [debug] QUERY OK source="media_items" db=0.2ms idle=508.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" = ?) [248507] 14:35:49.161 [debug] QUERY OK source="settings" db=0.1ms idle=508.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:49.161 [debug] QUERY OK source="settings" db=0.1ms idle=508.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:49.163 [debug] QUERY OK source="settings" db=0.5ms idle=508.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:49.164 [info] Sent 200 in 3ms 14:35:49.656 [info] GET /sources/3/media/233329/edit 14:35:49.657 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "233329", "source_id" => "3"} Pipelines: [:browser] 14:35:49.657 [debug] QUERY OK source="media_items" db=0.2ms idle=940.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" = ?) [233329] 14:35:49.658 [debug] QUERY OK source="settings" db=0.1ms idle=496.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:49.658 [debug] QUERY OK source="settings" db=0.1ms idle=496.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:49.658 [debug] QUERY OK source="settings" db=0.1ms idle=496.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:49.659 [info] Sent 200 in 3ms 14:35:50.163 [info] GET /sources/5/media/237946 14:35:50.163 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "237946", "source_id" => "5"} Pipelines: [:browser] 14:35:50.164 [debug] QUERY OK source="media_items" db=0.2ms idle=506.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" = ?) [237946] 14:35:50.164 [debug] QUERY OK source="tasks" db=0.2ms idle=506.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" [237946] 14:35:50.165 [debug] QUERY OK source="sources" db=0.3ms idle=506.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:35:50.165 [debug] QUERY OK source="settings" db=0.1ms idle=506.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:50.165 [debug] QUERY OK source="settings" db=0.1ms idle=447.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:50.166 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:50.167 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:50.168 [info] Sent 200 in 5ms 14:35:55.532 [info] GET /sources/3/media/237089/edit 14:35:55.533 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "237089", "source_id" => "3"} Pipelines: [:browser] 14:35:55.533 [debug] QUERY OK source="media_items" db=0.2ms idle=1962.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" = ?) [237089] 14:35:55.534 [debug] QUERY OK source="settings" db=0.1ms idle=1963.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:55.534 [debug] QUERY OK source="settings" db=0.1ms idle=1963.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:55.535 [debug] QUERY OK source="settings" db=0.2ms idle=1812.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:55.536 [info] Sent 200 in 3ms 14:35:55.964 [info] GET /sources/5/media/243340 14:35:55.964 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "243340", "source_id" => "5"} Pipelines: [:browser] 14:35:55.965 [debug] QUERY OK source="media_items" db=0.2ms idle=431.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" = ?) [243340] 14:35:55.965 [debug] QUERY OK source="tasks" db=0.1ms idle=431.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" [243340] 14:35:55.965 [debug] QUERY OK source="sources" db=0.3ms idle=430.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:35:55.966 [debug] QUERY OK source="settings" db=0.1ms idle=430.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:55.966 [debug] QUERY OK source="settings" db=0.2ms idle=242.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:55.967 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:55.968 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:55.969 [info] Sent 200 in 5ms 14:35:56.467 [info] GET /sources/5/media/236805 14:35:56.468 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "236805", "source_id" => "5"} Pipelines: [:browser] 14:35:56.468 [debug] QUERY OK source="media_items" db=0.2ms idle=502.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" = ?) [236805] 14:35:56.469 [debug] QUERY OK source="tasks" db=0.1ms idle=502.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" [236805] 14:35:56.469 [debug] QUERY OK source="sources" db=0.5ms idle=502.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:35:56.470 [debug] QUERY OK source="settings" db=0.1ms idle=502.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:56.470 [debug] QUERY OK source="settings" db=0.1ms idle=502.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:56.471 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:56.472 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:35:56.473 [info] Sent 200 in 5ms 14:35:56.970 [info] GET /sources/5/media/237946/edit 14:35:56.970 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "237946", "source_id" => "5"} Pipelines: [:browser] 14:35:56.971 [debug] QUERY OK source="media_items" db=0.2ms idle=500.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" = ?) [237946] 14:35:56.971 [debug] QUERY OK source="settings" db=0.2ms idle=500.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:56.972 [debug] QUERY OK source="settings" db=0.3ms idle=500.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:56.973 [debug] QUERY OK source="settings" db=0.5ms idle=500.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:56.974 [info] Sent 200 in 3ms 14:35:57.459 [info] GET /sources/5/media/243340/edit 14:35:57.459 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "243340", "source_id" => "5"} Pipelines: [:browser] 14:35:57.460 [debug] QUERY OK source="media_items" db=0.2ms idle=734.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" = ?) [243340] 14:35:57.460 [debug] QUERY OK source="settings" db=0.1ms idle=489.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:57.460 [debug] QUERY OK source="settings" db=0.1ms idle=488.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:57.461 [debug] QUERY OK source="settings" db=0.1ms idle=489.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:57.462 [info] Sent 200 in 3ms 14:35:57.960 [info] GET /sources/5/media/236805/edit 14:35:57.960 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "236805", "source_id" => "5"} Pipelines: [:browser] 14:35:57.961 [debug] QUERY OK source="media_items" db=0.2ms idle=501.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" = ?) [236805] 14:35:57.962 [debug] QUERY OK source="settings" db=0.1ms idle=501.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:57.962 [debug] QUERY OK source="settings" db=0.1ms idle=501.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:57.962 [debug] QUERY OK source="settings" db=0.1ms idle=501.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:35:57.963 [info] Sent 200 in 3ms 14:36:00.272 [info] {"source":"oban","duration":232,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:36:02.486 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:36:14.615 [info] GET /sources/5/media/245569 14:36:14.615 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "245569", "source_id" => "5"} Pipelines: [:browser] 14:36:14.616 [debug] QUERY OK source="media_items" db=0.2ms idle=1045.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" = ?) [245569] 14:36:14.616 [debug] QUERY OK source="tasks" db=0.1ms idle=1045.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" [245569] 14:36:14.616 [debug] QUERY OK source="sources" db=0.1ms idle=1046.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:36:14.617 [debug] QUERY OK source="settings" db=0.1ms idle=1046.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:14.617 [debug] QUERY OK source="settings" db=0.1ms idle=874.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:14.618 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:14.619 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:36:14.620 [info] Sent 200 in 5ms 14:36:14.971 [info] GET /sources/5/media/257247 14:36:14.971 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "257247", "source_id" => "5"} Pipelines: [:browser] 14:36:14.971 [debug] QUERY OK source="media_items" db=0.2ms idle=354.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" = ?) [257247] 14:36:14.972 [debug] QUERY OK source="tasks" db=0.2ms idle=354.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" [257247] 14:36:14.972 [debug] QUERY OK source="sources" db=0.4ms idle=353.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:36:14.973 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=354.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6587] 14:36:14.974 [debug] QUERY OK source="settings" db=0.4ms idle=229.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:14.974 [debug] QUERY OK source="settings" db=0.3ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:14.975 [debug] QUERY OK source="settings" db=0.5ms 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 [] 14:36:14.976 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:36:14.978 [info] Sent 200 in 7ms 14:36:15.481 [info] GET /sources/5/media/245569/edit 14:36:15.482 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "245569", "source_id" => "5"} Pipelines: [:browser] 14:36:15.482 [debug] QUERY OK source="media_items" db=0.2ms idle=508.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" = ?) [245569] 14:36:15.483 [debug] QUERY OK source="settings" db=0.1ms idle=508.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:15.483 [debug] QUERY OK source="settings" db=0.1ms idle=508.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:15.483 [debug] QUERY OK source="settings" db=0.0ms idle=507.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:15.485 [info] Sent 200 in 3ms 14:36:15.976 [info] GET /sources/5/media/234181 14:36:15.976 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "234181", "source_id" => "5"} Pipelines: [:browser] 14:36:15.976 [debug] QUERY OK source="media_items" db=0.2ms idle=493.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" = ?) [234181] 14:36:15.977 [debug] QUERY OK source="tasks" db=0.2ms idle=493.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" [234181] 14:36:15.977 [debug] QUERY OK source="sources" db=0.3ms idle=493.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:36:15.978 [debug] QUERY OK source="settings" db=0.1ms idle=494.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:15.978 [debug] QUERY OK source="settings" db=0.1ms idle=232.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:15.979 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:15.979 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:36:15.981 [info] Sent 200 in 5ms 14:36:16.485 [info] GET /sources/5/media/257247/edit 14:36:16.485 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "257247", "source_id" => "5"} Pipelines: [:browser] 14:36:16.486 [debug] QUERY OK source="media_items" db=0.3ms idle=508.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" = ?) [257247] 14:36:16.487 [debug] QUERY OK source="settings" db=0.1ms idle=508.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:16.487 [debug] QUERY OK source="settings" db=0.0ms idle=508.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:16.487 [debug] QUERY OK source="settings" db=0.0ms idle=508.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:16.489 [info] Sent 200 in 3ms 14:36:16.986 [info] GET /sources/5/media/256067/edit 14:36:16.986 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "256067", "source_id" => "5"} Pipelines: [:browser] 14:36:16.986 [debug] QUERY OK source="media_items" db=0.2ms idle=500.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [256067] 14:36:16.987 [debug] QUERY OK source="settings" db=0.1ms idle=500.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:16.987 [debug] QUERY OK source="settings" db=0.0ms 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 [] 14:36:16.988 [debug] QUERY OK source="settings" db=0.1ms idle=500.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:16.989 [info] Sent 200 in 3ms 14:36:25.111 [info] GET /sources/5/media/240590 14:36:25.111 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "240590", "source_id" => "5"} Pipelines: [:browser] 14:36:25.112 [debug] QUERY OK source="media_items" db=0.6ms idle=541.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" = ?) [240590] 14:36:25.113 [debug] QUERY OK source="sources" db=0.4ms idle=542.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:36:25.115 [debug] QUERY OK source="tasks" db=2.1ms idle=542.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" [240590] 14:36:25.117 [debug] QUERY OK source="settings" db=0.6ms idle=546.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:25.118 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=359.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:25.120 [debug] QUERY OK source="settings" db=1.1ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:25.122 [debug] QUERY OK source="media_profiles" db=1.5ms idle=7.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:36:25.124 [info] Sent 200 in 12ms 14:36:25.553 [info] GET /sources/5/media/252167/edit 14:36:25.553 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "252167", "source_id" => "5"} Pipelines: [:browser] 14:36:25.554 [debug] QUERY OK source="media_items" db=0.7ms idle=438.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" = ?) [252167] 14:36:25.555 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=437.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:25.556 [debug] QUERY OK source="settings" db=0.4ms idle=437.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:25.557 [debug] QUERY OK source="settings" db=0.3ms idle=436.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:25.559 [info] Sent 200 in 6ms 14:36:26.048 [info] GET /sources/5/media/240590/edit 14:36:26.048 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "240590", "source_id" => "5"} Pipelines: [:browser] 14:36:26.050 [debug] QUERY OK source="media_items" db=0.9ms idle=494.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" = ?) [240590] 14:36:26.051 [debug] QUERY OK source="settings" db=0.6ms idle=495.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:26.053 [debug] QUERY OK source="settings" db=1.3ms idle=495.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:26.055 [debug] QUERY OK source="settings" db=1.0ms idle=497.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:26.057 [info] Sent 200 in 8ms 14:36:26.547 [info] GET /sources/5/media/244405 14:36:26.548 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "244405", "source_id" => "5"} Pipelines: [:browser] 14:36:26.549 [debug] QUERY OK source="media_items" db=1.2ms idle=788.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" = ?) [244405] 14:36:26.551 [debug] QUERY OK source="sources" db=0.7ms idle=499.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:36:26.552 [debug] QUERY OK source="tasks" db=1.8ms idle=500.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" [244405] 14:36:26.554 [debug] QUERY OK source="settings" db=0.5ms idle=500.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:26.555 [debug] QUERY OK source="settings" db=0.5ms queue=0.4ms idle=498.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:26.557 [debug] QUERY OK source="settings" db=0.3ms queue=0.4ms idle=7.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:26.561 [debug] QUERY OK source="media_profiles" db=1.2ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:36:26.563 [info] Sent 200 in 15ms 14:36:27.054 [info] GET /sources/5/media/241742/edit 14:36:27.054 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "241742", "source_id" => "5"} Pipelines: [:browser] 14:36:27.056 [debug] QUERY OK source="media_items" db=1.2ms idle=500.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" = ?) [241742] 14:36:27.057 [debug] QUERY OK source="settings" db=0.3ms idle=501.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:27.057 [debug] QUERY OK source="settings" db=0.3ms idle=499.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:27.058 [debug] QUERY OK source="settings" db=0.3ms idle=496.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:27.059 [info] Sent 200 in 5ms 14:36:27.557 [info] GET /sources/5/media/234181/edit 14:36:27.557 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "234181", "source_id" => "5"} Pipelines: [:browser] 14:36:27.558 [debug] QUERY OK source="media_items" db=0.2ms idle=795.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" = ?) [234181] 14:36:27.558 [debug] QUERY OK source="settings" db=0.1ms idle=502.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:27.558 [debug] QUERY OK source="settings" db=0.1ms idle=501.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:27.559 [debug] QUERY OK source="settings" db=0.2ms idle=501.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:27.561 [info] Sent 200 in 3ms 14:36:32.487 [info] {"source":"oban","duration":832,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:36:41.751 [info] GET /sources/5/media/241742 14:36:41.751 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "241742", "source_id" => "5"} Pipelines: [:browser] 14:36:41.752 [debug] QUERY OK source="media_items" db=0.3ms idle=1181.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" = ?) [241742] 14:36:41.753 [debug] QUERY OK source="sources" db=0.3ms idle=1182.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:36:41.753 [debug] QUERY OK source="tasks" db=0.3ms idle=1182.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" [241742] 14:36:41.755 [debug] QUERY OK source="settings" db=0.8ms idle=952.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:41.755 [debug] QUERY OK source="settings" db=0.1ms idle=184.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:41.756 [debug] QUERY OK source="settings" db=0.1ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:41.757 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:36:41.758 [info] Sent 200 in 7ms 14:36:42.159 [info] GET /sources/5/media/244405/edit 14:36:42.159 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "244405", "source_id" => "5"} Pipelines: [:browser] 14:36:42.160 [debug] QUERY OK source="media_items" db=0.8ms idle=404.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" = ?) [244405] 14:36:42.161 [debug] QUERY OK source="settings" db=0.2ms idle=405.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:42.161 [debug] QUERY OK source="settings" db=0.2ms idle=405.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:42.162 [debug] QUERY OK source="settings" db=0.1ms idle=404.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:42.163 [info] Sent 200 in 4ms 14:36:42.641 [info] GET /sources/5/media/239531 14:36:42.641 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "239531", "source_id" => "5"} Pipelines: [:browser] 14:36:42.642 [debug] QUERY OK source="media_items" db=0.3ms idle=838.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" = ?) [239531] 14:36:42.643 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=482.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" [239531] 14:36:42.643 [debug] QUERY OK source="sources" db=0.2ms idle=482.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:36:42.644 [debug] QUERY OK source="settings" db=0.1ms idle=482.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:42.644 [debug] QUERY OK source="settings" db=0.1ms idle=482.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:42.645 [debug] QUERY OK source="settings" db=0.3ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:42.646 [debug] QUERY OK source="media_profiles" db=0.8ms idle=2.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:36:42.648 [info] Sent 200 in 6ms 14:36:43.154 [info] GET /sources/5/media/239531/edit 14:36:43.154 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "239531", "source_id" => "5"} Pipelines: [:browser] 14:36:43.155 [debug] QUERY OK source="media_items" db=0.3ms idle=510.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" = ?) [239531] 14:36:43.155 [debug] QUERY OK source="settings" db=0.1ms idle=511.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:43.156 [debug] QUERY OK source="settings" db=0.2ms idle=510.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:43.157 [debug] QUERY OK source="settings" db=0.7ms idle=509.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:43.159 [info] Sent 200 in 4ms 14:36:43.645 [info] GET /media/eaf78e67-df50-4e0e-9266-17fe86dcdf4a/stream 14:36:43.645 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "eaf78e67-df50-4e0e-9266-17fe86dcdf4a"} Pipelines: [:maybe_basic_auth] 14:36:43.646 [debug] QUERY OK source="media_items" db=0.5ms idle=841.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["eaf78e67-df50-4e0e-9266-17fe86dcdf4a"] 14:36:43.646 [debug] Invalid range request for media item: eaf78e67-df50-4e0e-9266-17fe86dcdf4a - serving full file 14:36:43.647 [info] Sent 200 in 1ms 14:36:53.044 [info] GET /sources/5/media/256067/force_download 14:36:53.044 [debug] QUERY OK source="settings" db=0.1ms idle=1230.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:53.045 [debug] QUERY OK source="settings" db=0.1ms idle=474.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:53.045 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:36:53.045 [error] #PID<0.557310.0> running PinchflatWeb.Endpoint (connection #PID<0.557309.0>, stream id 1) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/media/256067/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/5/media/256067/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/256067/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37892}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf59f79a9299fe-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557310.0>, params: %{}, path_info: ["sources", "5", "media", "256067", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf59f79a9299fe-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sources/5/media/256067/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RV4SGlA-edVUAQizB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/256067/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37892}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf59f79a9299fe-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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/media/256067/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/256067/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37892}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf59f79a9299fe-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, (truncated) 14:36:53.527 [info] GET /sources/5/media/252167/force_download 14:36:53.528 [debug] QUERY OK source="settings" db=0.1ms idle=957.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:53.528 [debug] QUERY OK source="settings" db=0.0ms idle=957.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:36:53.528 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:36:53.529 [error] #PID<0.557311.0> running PinchflatWeb.Endpoint (connection #PID<0.557309.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/media/252167/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/5/media/252167/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/252167/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37892}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf59faa8a999fe-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557311.0>, params: %{}, path_info: ["sources", "5", "media", "252167", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf59faa8a999fe-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sources/5/media/252167/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RV6FX3JQIKKUAQizh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/252167/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37892}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf59faa8a999fe-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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/5/media/252167/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/252167/force_download", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 37892}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf59faa8a999fe-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, (truncated) 14:36:54.027 [info] GET /media/55271ef5-34d4-4198-a53c-657597e555bc/stream 14:36:54.027 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "55271ef5-34d4-4198-a53c-657597e555bc"} Pipelines: [:maybe_basic_auth] 14:36:54.027 [debug] QUERY OK source="media_items" db=0.3ms idle=982.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["55271ef5-34d4-4198-a53c-657597e555bc"] 14:36:54.028 [debug] Invalid range request for media item: 55271ef5-34d4-4198-a53c-657597e555bc - serving full file 14:36:54.028 [info] Sent 200 in 1ms 14:37:00.273 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:37:02.488 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:37:13.520 [info] GET /sources/7 14:37:13.521 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "7"} Pipelines: [:browser] 14:37:13.521 [debug] QUERY OK source="sources" db=0.2ms idle=1950.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 14:37:13.522 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1951.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] 14:37:13.522 [debug] QUERY OK source="tasks" db=0.5ms idle=1686.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [7, "executing", "available", "scheduled", "retryable"] 14:37:13.523 [debug] QUERY OK source="oban_jobs" db=0.1ms queue=0.2ms idle=952.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6568] 14:37:13.524 [debug] QUERY OK source="settings" db=0.1ms queue=0.2ms idle=686.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:13.524 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:13.525 [debug] QUERY OK source="settings" db=0.6ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:13.527 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 14:37:13.527 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [7] 14:37:13.529 [debug] QUERY OK source="media_items" db=1.1ms idle=3.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 ? [7, 10, 0] 14:37:13.529 [debug] QUERY OK source="sources" db=0.2ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 14:37:13.530 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [7] 14:37:13.531 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [7, 10, 0] 14:37:13.532 [debug] QUERY OK source="sources" db=0.1ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 14:37:13.533 [debug] QUERY OK source="media_items" db=0.4ms idle=4.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [7] 14:37:13.534 [debug] QUERY OK source="media_items" db=0.5ms idle=3.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [7, 10, 0] 14:37:13.535 [info] Sent 200 in 14ms 14:37:13.897 [info] GET /sources/8 14:37:13.897 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "8"} Pipelines: [:browser] 14:37:13.897 [debug] QUERY OK source="sources" db=0.2ms idle=366.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 14:37:13.898 [debug] QUERY OK source="media_profiles" db=0.1ms idle=365.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:37:13.898 [debug] QUERY OK source="tasks" db=0.2ms idle=364.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [8, "executing", "available", "scheduled", "retryable"] 14:37:13.899 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=364.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" = ?) [6575] 14:37:13.899 [debug] QUERY OK source="settings" db=0.1ms idle=60.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:13.899 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:13.900 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:13.901 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 14:37:13.902 [debug] QUERY OK source="media_items" db=0.3ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [8] 14:37:13.903 [debug] QUERY OK source="media_items" db=0.5ms idle=3.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [8, 10, 0] 14:37:13.904 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 14:37:13.904 [debug] QUERY OK source="media_items" db=0.1ms idle=3.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [8] 14:37:13.905 [debug] QUERY OK source="media_items" db=0.5ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [8, 10, 0] 14:37:13.905 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 14:37:13.906 [debug] QUERY OK source="media_items" db=0.3ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [8] 14:37:13.907 [debug] QUERY OK source="media_items" db=0.6ms idle=2.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [8, 10, 0] 14:37:13.909 [info] Sent 200 in 11ms 14:37:14.401 [info] GET /sources/9 14:37:14.402 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 14:37:14.402 [debug] QUERY OK source="sources" db=0.2ms idle=497.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 14:37:14.403 [debug] QUERY OK source="media_profiles" db=0.1ms idle=497.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:37:14.403 [debug] QUERY OK source="tasks" db=0.3ms idle=497.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 (?,?,?,?)) [9, "executing", "available", "scheduled", "retryable"] 14:37:14.403 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=497.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6580] 14:37:14.404 [debug] QUERY OK source="settings" db=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 [] 14:37:14.404 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:14.405 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:14.406 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 14:37:14.407 [debug] QUERY OK source="media_items" db=0.3ms idle=3.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")))) [9] 14:37:14.408 [debug] QUERY OK source="media_items" db=0.4ms idle=3.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 14:37:14.409 [debug] QUERY OK source="sources" db=0.1ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 14:37:14.409 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [9] 14:37:14.409 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 14:37:14.410 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 14:37:14.411 [debug] QUERY OK source="media_items" db=0.5ms idle=2.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [9] 14:37:14.412 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 14:37:14.414 [info] Sent 200 in 12ms 14:37:14.898 [info] GET /sources/11 14:37:14.898 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "11"} Pipelines: [:browser] 14:37:14.899 [debug] QUERY OK source="sources" db=0.3ms idle=488.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 14:37:14.899 [debug] QUERY OK source="media_profiles" db=0.3ms idle=488.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] 14:37:14.900 [debug] QUERY OK source="tasks" db=0.3ms idle=488.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [11, "executing", "available", "scheduled", "retryable"] 14:37:14.900 [debug] QUERY OK source="settings" db=0.1ms idle=488.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:14.900 [debug] QUERY OK source="settings" db=0.1ms idle=60.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:14.901 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:14.902 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 14:37:14.903 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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")))) [11] 14:37:14.904 [debug] QUERY OK source="media_items" db=0.5ms idle=3.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 ? [11, 10, 0] 14:37:14.905 [debug] QUERY OK source="sources" db=0.1ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 14:37:14.905 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=3.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [11] 14:37:14.905 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [11, 10, 0] 14:37:14.907 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 14:37:14.907 [debug] QUERY OK source="media_items" db=0.4ms idle=3.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"))))) [11] 14:37:14.908 [debug] QUERY OK source="media_items" db=0.4ms idle=3.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 ? [11, 10, 0] 14:37:14.909 [info] Sent 200 in 11ms 14:37:15.393 [info] GET /sources/5/media/252167 14:37:15.393 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "252167", "prevent_download" => "true", "source_id" => "5"} Pipelines: [:browser] 14:37:15.394 [debug] QUERY OK source="media_items" db=0.2ms idle=488.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" = ?) [252167] 14:37:15.394 [debug] QUERY OK source="sources" db=0.2ms idle=487.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:37:15.394 [debug] QUERY OK source="tasks" db=0.3ms idle=488.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" [252167] 14:37:15.395 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=487.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6503, 6520] 14:37:15.395 [debug] QUERY OK source="settings" db=0.1ms idle=487.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:15.396 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:15.396 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:15.397 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:37:15.399 [info] Sent 200 in 6ms 14:37:15.892 [info] GET /sources/5/media/256067 14:37:15.892 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "256067", "prevent_download" => "true", "source_id" => "5"} Pipelines: [:browser] 14:37:15.893 [debug] QUERY OK source="media_items" db=0.3ms 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."id" = ?) [256067] 14:37:15.894 [debug] QUERY OK source="tasks" db=0.2ms idle=497.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" [256067] 14:37:15.894 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [5] 14:37:15.894 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=497.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [6565, 6583] 14:37:15.895 [debug] QUERY OK source="settings" db=0.1ms idle=53.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:15.895 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:15.896 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:15.896 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:37:15.899 [info] Sent 200 in 6ms 14:37:21.008 [info] GET /sources/3/edit 14:37:21.008 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 14:37:21.008 [debug] QUERY OK source="sources" db=0.2ms idle=1437.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:37:21.009 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1438.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 14:37:21.009 [debug] QUERY OK source="settings" db=0.1ms idle=1438.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.010 [debug] QUERY OK source="settings" db=0.3ms idle=1164.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.011 [debug] QUERY OK source="settings" db=0.6ms idle=164.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.014 [info] Sent 200 in 6ms 14:37:21.466 [info] GET /sources/7/edit 14:37:21.466 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "7"} Pipelines: [:browser] 14:37:21.467 [debug] QUERY OK source="sources" db=0.2ms idle=458.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [7] 14:37:21.467 [debug] QUERY OK source="media_profiles" db=0.2ms idle=458.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 14:37:21.468 [debug] QUERY OK source="settings" db=0.1ms idle=458.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.468 [debug] QUERY OK source="settings" db=0.1ms idle=458.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.469 [debug] QUERY OK source="settings" db=0.3ms idle=457.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.472 [info] Sent 200 in 6ms 14:37:21.961 [info] GET /sources/new 14:37:21.961 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 14:37:21.962 [debug] QUERY OK source="media_profiles" db=0.3ms idle=494.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 14:37:21.962 [debug] QUERY OK source="settings" db=0.1ms idle=494.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.963 [debug] QUERY OK source="settings" db=0.2ms idle=494.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.963 [debug] QUERY OK source="settings" db=0.1ms idle=494.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.964 [debug] QUERY OK source="settings" db=0.1ms idle=116.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.964 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:21.978 [info] Sent 200 in 16ms 14:37:22.464 [info] GET /sources/8/edit 14:37:22.464 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "8"} Pipelines: [:browser] 14:37:22.465 [debug] QUERY OK source="sources" db=0.2ms idle=501.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [8] 14:37:22.465 [debug] QUERY OK source="media_profiles" db=0.2ms idle=501.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 14:37:22.466 [debug] QUERY OK source="settings" db=0.1ms idle=502.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:22.466 [debug] QUERY OK source="settings" db=0.1ms idle=501.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:22.466 [debug] QUERY OK source="settings" db=0.2ms idle=501.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:22.470 [info] Sent 200 in 5ms 14:37:22.977 [info] GET /sources/9/edit 14:37:22.977 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 14:37:22.977 [debug] QUERY OK source="sources" db=0.2ms idle=512.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 14:37:22.978 [debug] QUERY OK source="media_profiles" db=0.2ms idle=512.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 14:37:22.978 [debug] QUERY OK source="settings" db=0.1ms idle=512.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:22.979 [debug] QUERY OK source="settings" db=0.2ms idle=512.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:22.979 [debug] QUERY OK source="settings" db=0.1ms idle=131.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:22.983 [info] Sent 200 in 6ms 14:37:23.478 [info] GET /sources/5/edit 14:37:23.478 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 14:37:23.479 [debug] QUERY OK source="sources" db=0.2ms idle=501.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:37:23.479 [debug] QUERY OK source="media_profiles" db=0.1ms idle=501.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 14:37:23.480 [debug] QUERY OK source="settings" db=0.1ms idle=501.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:23.480 [debug] QUERY OK source="settings" db=0.0ms idle=501.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:23.481 [debug] QUERY OK source="settings" db=0.1ms idle=501.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:23.484 [info] Sent 200 in 5ms 14:37:32.489 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:37:47.248 [info] GET /sources/11/edit 14:37:47.248 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "11"} Pipelines: [:browser] 14:37:47.248 [debug] QUERY OK source="sources" db=0.2ms idle=1347.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [11] 14:37:47.249 [debug] QUERY OK source="media_profiles" db=0.2ms idle=678.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 14:37:47.249 [debug] QUERY OK source="settings" db=0.0ms idle=679.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:47.250 [debug] QUERY OK source="settings" db=0.1ms idle=679.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:47.250 [debug] QUERY OK source="settings" db=0.3ms idle=348.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:47.254 [info] Sent 200 in 6ms 14:37:47.600 [info] GET /sources/3/force_metadata_refresh 14:37:47.601 [debug] QUERY OK source="settings" db=0.2ms idle=352.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:47.601 [debug] QUERY OK source="settings" db=0.1ms idle=352.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:47.601 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:37:47.602 [error] #PID<0.557340.0> running PinchflatWeb.Endpoint (connection #PID<0.557338.0>, stream id 2) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/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/3/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b4c9d4fddf0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557340.0>, params: %{}, path_info: ["sources", "3", "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 => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5b4c9d4fddf0-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sources/3/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RZDhY47a8bdYAQjIh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b4c9d4fddf0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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/3/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b4c9d4fddf0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3Q (truncated) 14:37:48.101 [info] GET /media_profiles/1 14:37:48.101 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 14:37:48.101 [debug] QUERY OK source="media_profiles" db=0.2ms idle=851.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:37:48.102 [debug] QUERY OK source="sources" db=0.2ms idle=851.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 14:37:48.103 [debug] QUERY OK source="settings" db=0.1ms idle=501.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:48.103 [debug] QUERY OK source="settings" db=0.1ms idle=501.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:48.104 [debug] QUERY OK source="settings" db=0.1ms idle=200.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:48.105 [info] Sent 200 in 4ms 14:37:48.610 [info] GET /sources/5/force_metadata_refresh 14:37:48.611 [debug] QUERY OK source="settings" db=0.2ms idle=509.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:48.611 [debug] QUERY OK source="settings" db=0.1ms idle=509.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:48.611 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:37:48.612 [error] #PID<0.557342.0> running PinchflatWeb.Endpoint (connection #PID<0.557338.0>, stream id 4) terminated Server: content.andreas-larsen.dk: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.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b52ea0fddf0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557342.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 => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5b52ea0fddf0-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], 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", "GN9RZHSO0_B2jD8AQjKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b52ea0fddf0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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/5/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_metadata_refresh", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b52ea0fddf0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3Q (truncated) 14:37:49.111 [info] GET /sources/3/force_index 14:37:49.111 [debug] QUERY OK source="settings" db=0.2ms idle=1007.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:49.112 [debug] QUERY OK source="settings" db=0.1ms idle=1007.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:49.112 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:37:49.112 [error] #PID<0.557343.0> running PinchflatWeb.Endpoint (connection #PID<0.557338.0>, stream id 5) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b56088dddf0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557343.0>, params: %{}, path_info: ["sources", "3", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5b56088dddf0-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sources/3/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RZJJiNP5atKQAQjKh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b56088dddf0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk7xrJ0kQLIMPTeaX2YXjQc", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, 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/3/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b56088dddf0-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUDlycTE2aGI2Vndmdl9MWlZUb0lpM3Js.IudjdJSuAeWtGHZucNVbSk (truncated) 14:37:51.981 [info] GET /sources/5/force_index 14:37:51.982 [debug] QUERY OK source="settings" db=0.1ms idle=1411.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:51.982 [debug] QUERY OK source="settings" db=0.4ms idle=1411.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:51.982 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:37:51.983 [error] #PID<0.557344.0> running PinchflatWeb.Endpoint (connection #PID<0.557338.0>, stream id 6) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b6808392407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557344.0>, params: %{}, path_info: ["sources", "5", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5b6808392407-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sources/5/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RZT137dqcKg0AQjLB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b6808392407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_index", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b6808392407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.5573 (truncated) 14:37:52.444 [info] GET /sources/3/force_redownload 14:37:52.447 [debug] QUERY OK source="settings" db=2.1ms idle=1874.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:52.449 [debug] QUERY OK source="settings" db=2.2ms idle=1540.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:52.449 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:37:52.451 [error] #PID<0.557345.0> running PinchflatWeb.Endpoint (connection #PID<0.557338.0>, stream id 7) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b6adee82407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557345.0>, params: %{}, path_info: ["sources", "3", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5b6adee82407-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sources/3/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RZVkQgPk0cDUAQjLh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b6adee82407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b6adee82407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", met (truncated) 14:37:52.943 [info] GET /sources/3/sync_files_on_disk 14:37:52.944 [debug] QUERY OK source="settings" db=0.5ms idle=961.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:52.945 [debug] QUERY OK source="settings" db=0.2ms idle=961.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:52.945 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:37:52.945 [error] #PID<0.557346.0> running PinchflatWeb.Endpoint (connection #PID<0.557338.0>, stream id 8) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/sync_files_on_disk ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b6dfdd12407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557346.0>, params: %{}, path_info: ["sources", "3", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5b6dfdd12407-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sources/3/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RZXbRUIV0F7MAQjMB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b6dfdd12407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b6dfdd12407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk (truncated) 14:37:53.445 [info] GET /sources/5/force_redownload 14:37:53.446 [debug] QUERY OK source="settings" db=0.3ms idle=998.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:53.446 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=996.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:53.446 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:37:53.447 [error] #PID<0.557347.0> running PinchflatWeb.Endpoint (connection #PID<0.557338.0>, stream id 9) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b711cd82407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557347.0>, params: %{}, path_info: ["sources", "5", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5b711cd82407-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sources/5/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RZZS1mU-msiUAQjMh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b711cd82407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_redownload", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b711cd82407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", met (truncated) 14:37:53.946 [info] GET /sources/5/sync_files_on_disk 14:37:53.947 [debug] QUERY OK source="settings" db=0.2ms idle=1002.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:53.947 [debug] QUERY OK source="settings" db=0.4ms idle=1002.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:37:53.948 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:37:53.948 [error] #PID<0.557348.0> running PinchflatWeb.Endpoint (connection #PID<0.557338.0>, stream id 10) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/sync_files_on_disk ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b743af12407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557348.0>, params: %{}, path_info: ["sources", "5", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5b743af12407-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sources/5/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RZbKZN68qlhEAQjNB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b743af12407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557338.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/sync_files_on_disk", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 55390}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5b743af12407-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "content.andreas-larse (truncated) 14:38:00.274 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:38:01.768 [info] GET /sources/3/media/201686 14:38:01.768 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "201686", "source_id" => "3"} Pipelines: [:browser] 14:38:01.769 [debug] QUERY OK source="media_items" db=0.5ms idle=1198.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [201686] 14:38:01.770 [debug] QUERY OK source="tasks" db=0.5ms idle=852.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" [201686] 14:38:01.770 [debug] QUERY OK source="sources" db=0.6ms idle=199.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:01.771 [debug] QUERY OK source="settings" db=0.6ms idle=200.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:01.771 [debug] QUERY OK source="settings" db=0.1ms idle=201.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:01.772 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:01.773 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:38:01.775 [info] Sent 200 in 6ms 14:38:02.212 [info] GET /sources/3/media/201686/edit 14:38:02.212 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "201686", "source_id" => "3"} Pipelines: [:browser] 14:38:02.212 [debug] QUERY OK source="media_items" db=0.2ms idle=441.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" = ?) [201686] 14:38:02.213 [debug] QUERY OK source="settings" db=0.1ms idle=441.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:02.213 [debug] QUERY OK source="settings" db=0.1ms idle=441.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:02.214 [debug] QUERY OK source="settings" db=0.5ms idle=440.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:02.215 [info] Sent 200 in 3ms 14:38:02.490 [info] {"source":"oban","duration":717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:38:02.722 [info] GET /sources/3 14:38:02.723 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "3"} Pipelines: [:browser] 14:38:02.723 [debug] QUERY OK source="sources" db=0.2ms idle=510.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:02.724 [debug] QUERY OK source="media_profiles" db=0.2ms idle=510.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:38:02.724 [debug] QUERY OK source="tasks" db=0.4ms idle=510.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 14:38:02.725 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=510.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" = ?) [6585] 14:38:02.725 [debug] QUERY OK source="settings" db=0.1ms idle=235.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:02.726 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:02.726 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:02.728 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:02.728 [debug] QUERY OK source="media_items" db=0.3ms idle=2.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")))) [3] 14:38:02.729 [debug] QUERY OK source="media_items" db=0.5ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [3, 10, 0] 14:38:02.730 [debug] QUERY OK source="sources" db=0.1ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:02.730 [debug] QUERY OK source="media_items" db=0.1ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 14:38:02.731 [debug] QUERY OK source="media_items" db=0.3ms queue=0.2ms idle=2.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 14:38:02.732 [debug] QUERY OK source="sources" db=0.1ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:02.732 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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"))))) [3] 14:38:02.733 [debug] QUERY OK source="media_items" db=0.5ms idle=2.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 14:38:02.735 [info] Sent 200 in 12ms 14:38:03.214 [info] GET /sources/3/media/218665 14:38:03.215 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "218665", "source_id" => "3"} Pipelines: [:browser] 14:38:03.215 [debug] QUERY OK source="media_items" db=0.2ms idle=483.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" = ?) [218665] 14:38:03.216 [debug] QUERY OK source="tasks" db=0.1ms idle=483.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" [218665] 14:38:03.216 [debug] QUERY OK source="sources" db=0.2ms idle=483.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:03.216 [debug] QUERY OK source="settings" db=0.3ms idle=482.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:03.217 [debug] QUERY OK source="settings" db=0.1ms idle=297.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:03.217 [debug] QUERY OK source="settings" db=0.2ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:03.218 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:38:03.220 [info] Sent 200 in 5ms 14:38:03.715 [info] GET /sources/3/media/218665/edit 14:38:03.715 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "218665", "source_id" => "3"} Pipelines: [:browser] 14:38:03.716 [debug] QUERY OK source="media_items" db=0.2ms idle=499.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" = ?) [218665] 14:38:03.716 [debug] QUERY OK source="settings" db=0.1ms idle=499.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:03.716 [debug] QUERY OK source="settings" db=0.0ms idle=499.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:03.717 [debug] QUERY OK source="settings" db=0.0ms idle=499.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:03.718 [info] Sent 200 in 3ms 14:38:04.229 [info] GET /sources/3/force_download_pending 14:38:04.229 [debug] QUERY OK source="settings" db=0.1ms idle=513.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:04.230 [debug] QUERY OK source="settings" db=0.1ms idle=513.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:04.230 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:38:04.230 [error] #PID<0.557361.0> running PinchflatWeb.Endpoint (connection #PID<0.557349.0>, stream id 6) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/3/force_download_pending ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557349.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35200}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5bb48b4ceee6-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdnhHRjNUS21QYms1ZkV1LVpEaVhDeVRn.vHkB1HDXiNmKcxNQdQqo0WpVdONfjyH26JWe9K_f9W0", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdnhHRjNUS21QYms1ZkV1LVpEaVhDeVRn.vHkB1HDXiNmKcxNQdQqo0WpVdONfjyH26JWe9K_f9W0" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557361.0>, params: %{}, path_info: ["sources", "3", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdnhHRjNUS21QYms1ZkV1LVpEaVhDeVRn.vHkB1HDXiNmKcxNQdQqo0WpVdONfjyH26JWe9K_f9W0" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5bb48b4ceee6-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdnhHRjNUS21QYms1ZkV1LVpEaVhDeVRn.vHkB1HDXiNmKcxNQdQqo0WpVdONfjyH26JWe9K_f9W0"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 104.23.243.178"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "104.23.243.178"} ], request_path: "/sources/3/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RaBd83YPexzsAQjRB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557349.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35200}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5bb48b4ceee6-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYdnhHRjNUS21QYms1ZkV1LVpEaVhDeVRn.vHkB1HDXiNmKcxNQdQqo0WpVdONfjyH26JWe9K_f9W0", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 104.23.243.178", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "104.23.243.178" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557349.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 35200}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5bb48b4ceee6-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3Q (truncated) 14:38:13.753 [info] GET /sources/5 14:38:13.753 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "5"} Pipelines: [:browser] 14:38:13.754 [debug] QUERY OK source="sources" db=0.4ms idle=822.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:38:13.755 [debug] QUERY OK source="media_profiles" db=0.1ms idle=184.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] 14:38:13.755 [debug] QUERY OK source="tasks" db=0.3ms idle=184.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [5, "executing", "available", "scheduled", "retryable"] 14:38:13.755 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=185.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [6588] 14:38:13.756 [debug] QUERY OK source="settings" db=0.1ms idle=185.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:13.756 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:13.757 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:13.758 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:38:13.760 [debug] QUERY OK source="media_items" db=1.3ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [5] 14:38:13.762 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=4.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 14:38:13.763 [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" = ?) [5] 14:38:13.763 [debug] QUERY OK source="media_items" db=0.3ms idle=6.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 14:38:13.765 [debug] QUERY OK source="media_items" db=0.9ms idle=5.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 14:38:13.766 [debug] QUERY OK source="sources" db=0.1ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:38:13.767 [debug] QUERY OK source="media_items" db=1.3ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [5] 14:38:13.769 [debug] QUERY OK source="media_items" db=1.8ms idle=4.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 ? [5, 10, 0] 14:38:13.771 [info] Sent 200 in 17ms 14:38:14.154 [info] GET /sources/3/media/212241 14:38:14.154 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "212241", "source_id" => "3"} Pipelines: [:browser] 14:38:14.155 [debug] QUERY OK source="media_items" db=0.3ms idle=389.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" = ?) [212241] 14:38:14.155 [debug] QUERY OK source="tasks" db=0.1ms idle=389.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" [212241] 14:38:14.155 [debug] QUERY OK source="sources" db=0.2ms idle=387.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:14.156 [debug] QUERY OK source="settings" db=0.3ms idle=386.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:14.156 [debug] QUERY OK source="settings" db=0.1ms idle=224.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:14.157 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:14.158 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:38:14.159 [info] Sent 200 in 5ms 14:38:14.662 [info] GET /sources/5/force_download_pending 14:38:14.663 [debug] QUERY OK source="settings" db=0.2ms 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 [] 14:38:14.663 [debug] QUERY OK source="settings" db=0.1ms idle=506.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:14.663 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 14:38:14.664 [error] #PID<0.557370.0> running PinchflatWeb.Endpoint (connection #PID<0.557364.0>, stream id 3) terminated Server: content.andreas-larsen.dk:80 (http) Request: GET /sources/5/force_download_pending ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557364.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 46540}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5bf5ab25a3ae-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYc3lsZWRyNW5XVXZNV0pEVllSYm1rSm1i.8XgQOARmEq7wq5vlukYIZn51MqvvRquKvxlkbMXvbm4", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYc3lsZWRyNW5XVXZNV0pEVllSYm1rSm1i.8XgQOARmEq7wq5vlukYIZn51MqvvRquKvxlkbMXvbm4" }, halted: false, host: "content.andreas-larsen.dk", method: "GET", owner: #PID<0.557370.0>, params: %{}, path_info: ["sources", "5", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://content.andreas-larsen.dk", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 2}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYc3lsZWRyNW5XVXZNV0pEVllSYm1rSm1i.8XgQOARmEq7wq5vlukYIZn51MqvvRquKvxlkbMXvbm4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br"}, {"cdn-loop", "cloudflare; loops=1"}, {"cf-connecting-ip", "216.73.216.244"}, {"cf-ipcountry", "US"}, {"cf-ray", "a4bf5bf5ab25a3ae-CMH"}, {"cf-visitor", "{\"scheme\":\"https\"}"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYc3lsZWRyNW5XVXZNV0pEVllSYm1rSm1i.8XgQOARmEq7wq5vlukYIZn51MqvvRquKvxlkbMXvbm4"}, {"host", "content.andreas-larsen.dk"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.244, 172.71.28.161"}, {"x-forwarded-host", "content.andreas-larsen.dk"}, {"x-forwarded-port", "443"}, {"x-forwarded-proto", "https"}, {"x-forwarded-server", "a3ab831033a5"}, {"x-real-ip", "172.71.28.161"} ], request_path: "/sources/5/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GN9RaoVfTZAXZRUAQjTh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557364.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 46540}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5bf5ab25a3ae-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYc3lsZWRyNW5XVXZNV0pEVllSYm1rSm1i.8XgQOARmEq7wq5vlukYIZn51MqvvRquKvxlkbMXvbm4", "host" => "content.andreas-larsen.dk", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.244, 172.71.28.161", "x-forwarded-host" => "content.andreas-larsen.dk", "x-forwarded-port" => "443", "x-forwarded-proto" => "https", "x-forwarded-server" => "a3ab831033a5", "x-real-ip" => "172.71.28.161" }, 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/5/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.557364.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_download_pending", host: "content.andreas-larsen.dk", peer: {{172, 18, 0, 2}, 46540}, bindings: %{}, sock: {{172, 18, 0, 13}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br", "cdn-loop" => "cloudflare; loops=1", "cf-connecting-ip" => "216.73.216.244", "cf-ipcountry" => "US", "cf-ray" => "a4bf5bf5ab25a3ae-CMH", "cf-visitor" => "{\"scheme\":\"https\"}", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABb (truncated) 14:38:15.162 [info] GET /sources/3/media/212241/edit 14:38:15.162 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "212241", "source_id" => "3"} Pipelines: [:browser] 14:38:15.162 [debug] QUERY OK source="media_items" db=0.2ms idle=1005.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" = ?) [212241] 14:38:15.163 [debug] QUERY OK source="settings" db=0.1ms idle=1005.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:15.163 [debug] QUERY OK source="settings" db=0.0ms 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 [] 14:38:15.164 [debug] QUERY OK source="settings" db=0.1ms idle=500.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:15.165 [info] Sent 200 in 3ms 14:38:15.659 [info] GET /sources/3/media/215043 14:38:15.659 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "215043", "source_id" => "3"} Pipelines: [:browser] 14:38:15.660 [debug] QUERY OK source="media_items" db=0.2ms idle=726.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" = ?) [215043] 14:38:15.660 [debug] QUERY OK source="tasks" db=0.1ms idle=497.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" [215043] 14:38:15.660 [debug] QUERY OK source="sources" db=0.3ms idle=497.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:15.661 [debug] QUERY OK source="settings" db=0.1ms idle=497.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:15.661 [debug] QUERY OK source="settings" db=0.2ms idle=497.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:15.662 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:15.663 [debug] QUERY OK source="media_profiles" db=0.3ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:38:15.664 [info] Sent 200 in 5ms 14:38:16.150 [info] GET /sources/3/media/205215 14:38:16.150 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "205215", "source_id" => "3"} Pipelines: [:browser] 14:38:16.151 [debug] QUERY OK source="media_items" db=0.2ms idle=489.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" = ?) [205215] 14:38:16.151 [debug] QUERY OK source="tasks" db=0.1ms idle=489.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" [205215] 14:38:16.151 [debug] QUERY OK source="sources" db=0.1ms idle=489.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:16.152 [debug] QUERY OK source="settings" db=0.1ms idle=488.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:16.152 [debug] QUERY OK source="settings" db=0.1ms idle=218.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:16.153 [debug] QUERY OK source="settings" db=0.2ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:16.154 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:38:16.155 [info] Sent 200 in 5ms 14:38:32.491 [info] {"source":"oban","duration":925,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:38:33.900 [info] GET /sources/3/media/198180 14:38:33.900 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "198180", "source_id" => "3"} Pipelines: [:browser] 14:38:33.901 [debug] QUERY OK source="media_items" db=0.2ms idle=948.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" = ?) [198180] 14:38:33.902 [debug] QUERY OK source="tasks" db=0.3ms idle=331.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" [198180] 14:38:33.902 [debug] QUERY OK source="sources" db=0.3ms idle=331.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:33.902 [debug] QUERY OK source="settings" db=0.1ms idle=331.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:33.902 [debug] QUERY OK source="settings" db=0.1ms idle=332.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:33.903 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:33.904 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:38:33.905 [info] Sent 200 in 5ms 14:38:34.325 [info] GET /sources/3/media/215043/edit 14:38:34.325 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "215043", "source_id" => "3"} Pipelines: [:browser] 14:38:34.326 [debug] QUERY OK source="media_items" db=0.8ms idle=422.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" = ?) [215043] 14:38:34.327 [debug] QUERY OK source="settings" db=0.2ms idle=423.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:34.327 [debug] QUERY OK source="settings" db=0.2ms idle=423.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:34.328 [debug] QUERY OK source="settings" db=0.4ms idle=423.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:34.329 [info] Sent 200 in 4ms 14:38:34.828 [info] GET /sources/3/media/205215/edit 14:38:34.828 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "205215", "source_id" => "3"} Pipelines: [:browser] 14:38:34.829 [debug] QUERY OK source="media_items" db=0.3ms idle=875.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [205215] 14:38:34.829 [debug] QUERY OK source="settings" db=0.1ms idle=503.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:34.830 [debug] QUERY OK source="settings" db=0.2ms idle=502.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:34.830 [debug] QUERY OK source="settings" db=0.1ms idle=502.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:34.832 [info] Sent 200 in 3ms 14:38:35.318 [info] GET /sources/3/media/198180/edit 14:38:35.318 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "198180", "source_id" => "3"} Pipelines: [:browser] 14:38:35.319 [debug] QUERY OK source="media_items" db=0.2ms idle=489.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" = ?) [198180] 14:38:35.319 [debug] QUERY OK source="settings" db=0.1ms idle=489.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:35.319 [debug] QUERY OK source="settings" db=0.1ms idle=489.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:35.320 [debug] QUERY OK source="settings" db=0.2ms idle=489.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:35.322 [info] Sent 200 in 3ms 14:38:35.816 [info] GET /sources/new 14:38:35.816 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "3"} Pipelines: [:browser] 14:38:35.817 [debug] QUERY OK source="sources" db=0.2ms idle=863.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 14:38:35.818 [debug] QUERY OK source="media_profiles" db=0.3ms idle=498.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 14:38:35.818 [debug] QUERY OK source="settings" db=0.5ms idle=498.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:35.819 [debug] QUERY OK source="settings" db=0.1ms idle=499.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:35.819 [debug] QUERY OK source="settings" db=0.1ms idle=498.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:35.820 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:35.820 [debug] QUERY OK source="settings" db=0.0ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:35.823 [info] Sent 200 in 7ms 14:38:36.319 [info] GET /sources/new 14:38:36.319 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "5"} Pipelines: [:browser] 14:38:36.319 [debug] QUERY OK source="sources" db=0.2ms idle=500.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 14:38:36.320 [debug] QUERY OK source="media_profiles" db=0.2ms idle=500.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 14:38:36.320 [debug] QUERY OK source="settings" db=0.1ms idle=500.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:36.321 [debug] QUERY OK source="settings" db=0.1ms idle=500.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:36.321 [debug] QUERY OK source="settings" db=0.2ms idle=365.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:36.322 [debug] QUERY OK source="settings" db=0.4ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:38:36.324 [debug] QUERY OK source="settings" db=0.6ms 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 [] 14:38:36.327 [info] Sent 200 in 8ms 14:39:00.275 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:39:02.493 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:39:32.494 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:40:00.276 [info] {"source":"oban","duration":202,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:40:02.495 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:40:32.496 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:40:59.243 [info] GET /media_profiles/1/edit 14:40:59.243 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 14:40:59.244 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1673.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 14:40:59.244 [debug] QUERY OK source="settings" db=0.1ms idle=1674.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:40:59.245 [debug] QUERY OK source="settings" db=0.1ms idle=1674.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:40:59.245 [debug] QUERY OK source="settings" db=0.1ms idle=1143.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:40:59.247 [info] Sent 200 in 3ms 14:41:00.277 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:41:02.497 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0}